Openflow BYOC: Einrichten verschlüsselter EBS-Volumes¶
Unter diesem Thema werden die Schritte zum Einrichten einer Openflow-BYOC-Bereitstellung mit verschlüsselten Elastic Block Storage (EBS)-Volumes anhand einer der folgenden Methoden beschrieben:
Angeben eines bestimmten AWS KMS-Schlüssels für verschlüsselte EBS-Volumes
Verschlüsselte EBS-Volumes standardmäßig für Ihr AWS-Konto aktivieren
Beide Lösungen bieten verschlüsselte EBS-Volumes, die die folgenden Speicheranforderungen von Openflow-BYOC erfüllen:
Stammvolume für die EC2-Instanz des Openflow-Agenten
Stammvolumes für die EC2-Instanzen in jeder EKS-Clusterknotengruppe
Persistente Volumes für die Laufzeiten von Openflow und unterstützende Komponenten
Bemerkung
$AWS_ACCOUNT_IDsteht für die AWS-Konto-ID des Kontos, in dem Openflow bereitgestellt wird.$AWS_REGIONsteht für die AWS-Region des Kontos, zum Beispielus-west-2.$AWS_KMS_KEY_ARNstellt den Amazon Resource Name (ARN) des Amazon Key Management Service (AWS KMS)-Schlüssel dar, den Openflow für verschlüsselte EBS-Volumes verwendet.$DEPLOYMENT_KEYstellt den eindeutigen Openflow-Bezeichner dar, der auf Cloudressourcen angewendet wird, die von Openflow für eine bestimmte Bereitstellung erstellt und verwaltet werden. Dieser findet sich imDataPlaneKey-Parameter der CloudFormation-Vorlage, die auch in Openflow über das Menü View Details für die Bereitstellung verfügbar ist.
Voraussetzungen¶
Dieses Thema geht davon aus, dass Sie die Voraussetzungen für die Einrichtung von Openflow BYOC erfüllt haben. Weitere Informationen dazu finden Sie unter Openflow einrichten – BYOC.
Sie müssen auch Zugriff auf einen AWS KMS-Schlüssel haben, den Openflow für verschlüsselte EBS-Volumes verwendet.
Angeben eines bestimmten AWS KMS-Schlüssels für verschlüsselte EBS-Volumes¶
Beim Hochladen der CloudFormation-Vorlage für Ihre Openflow BYOC-Bereitstellung können Sie den ARN für den AWS KMS-Schlüssel bereitstellen, den Openflow für verschlüsselte EBS-Volumes verwendet.
Mit dieser Konfiguration stellt Openflow Anfragen nach verschlüsselten EBS-Volumes, um sicherzustellen, dass alle SCP-Richtlinien erfüllt sind. Snowflake empfiehlt diesen Ansatz für die meisten Kunden.
Auf diese Weise können Sie verschiedene KMS-Schlüssel für verschiedene Anwendungen verwenden, wodurch das Risiko verringert wird, dass ein einzelner Schlüssel kompromittiert wird.
Um sicherzustellen, dass Openflow über die erforderlichen Berechtigungen zur Verwendung dieses Schlüssels verfügt, führen Sie die folgenden Aufgaben aus:
Stellen Sie sicher, dass der AWS KMS-Schlüssel der AWS Autoscaling Service-Rolle Berechtigungen gewährt. Die Schlüsselrichtlinie muss die folgende Anweisung enthalten:
{ "Sid": "Allow Autoscaling to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::$AWS_ACCOUNT_ID:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
Geben Sie den ARN des AWS KMS-Schlüssel in den
EBSKMSKeyArn-Parameter des CloudFormation-Stacks beim Hochladen der Vorlage ein.Beispiel:
arn:aws:kms:$AWS_REGION:$AWS_ACCOUNT_ID:key/1a1a11aa-aa1a-aaa1a-a1a1-000000000000.Etwa 20 Minuten nach dem Hochladen der CloudFormation-Vorlage erstellt die Openflow BYOC-Bereitstellung eine neue IAM-Rolle mit dem Namen
$DEPLOYMENT_KEY-eks-role.Fügen Sie die folgende Anweisung zur KMS-Schlüsselrichtlinie hinzu, um Openflow Berechtigungen zur Verwendung des Schlüssels zu erteilen:
{ "Sid": "Allow Openflow Deployment to encrypt EBS volumes", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::$AWS_ACCOUNT_ID:role/$DEPLOYMENT_KEY-eks-role" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" }
Openflow erkennt automatisch die neuen Berechtigungen für den KMS-Schlüssel und setzt den Installationsprozess fort. Die Openflow BYOC-Bereitstellung wird nach etwa 20 Minuten Active.
Verschlüsselte EBS-Volumes standardmäßig für Ihr AWS-Konto aktivieren¶
AWS-Konten können neue EBS-Volumes standardmäßig verschlüsseln, indem Sie der Dokumentation zur standardmäßigen AWS EBS-Verschlüsselung unter folgen.
Mit dieser Konfiguration stellt Openflow Anfragen nach unverschlüsselten EBS-Volumes, wobei die AWS API jedoch ein verschlüsseltes EBS-Volume zurückgibt. Die folgenden Schritte stellen sicher, dass Openflow Berechtigungen zur Verwendung des KMS-Schlüssels für diese verschlüsselten Volumes hat.
Unabhängig davon, ob Sie die den verwalteten AWS- Schlüssel aws/ebs oder Ihren eigenen KMS-Schlüssel verwenden, müssen Sie eine IAM-Richtlinie an die Openflow IAM-Rolle $DEPLOYMENT_KEY-eks-role anfügen, die die erforderlichen Berechtigungen zur Verwendung des Schlüssels erteilt.
Erstellen Sie eine IAM-Richtlinie, um Openflow die Verwendung des KMS-Schlüssels zu erlauben, indem Sie
$AWS_KMS_KEY_ARNdurch den ARN des KMS-Schlüssels ersetzen.{ "Sid": "Allow Openflow EKS Role to encrypt EBS volumes", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "$AWS_KMS_KEY_ARN" }
Stellen Sie sicher, dass der AWS KMS-Schlüssel der AWS Autoscaling Service-Rolle Berechtigungen gewährt. Die Schlüsselrichtlinie muss die folgende Anweisung enthalten:
{ "Sid": "Allow Autoscaling to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::$AWS_ACCOUNT_ID:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
Beim Hochladen der Openflow BYOC CloudFormation-Vorlage:
Lassen Sie den optionalen
EBSKMSKeyArn-Parameter leer.Legen Sie den
AdditionalEksRolePolicyArns-Parameter auf den ARN der zuvor neu erstellten IAM-Richtlinie fest. Beispiel:arn:aws:iam::$AWS_ACCOUNT_ID:policy/openflow-kms-key-access-policy.
Etwa 20 Minuten nach dem Hochladen der CloudFormation-Vorlage erstellt die Openflow BYOC-Bereitstellung eine neue IAM-Rolle mit dem Namen
$DEPLOYMENT_KEY-eks-role.Fügen Sie die folgende Anweisung zur KMS-Schlüsselrichtlinie hinzu, um Openflow Berechtigungen zur Verwendung des Schlüssels zu erteilen:
{ "Sid": "Allow Openflow Deployment to encrypt EBS volumes", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::$AWS_ACCOUNT_ID:role/$DEPLOYMENT_KEY-eks-role" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" }
Openflow erkennt automatisch die neuen Berechtigungen für den KMS-Schlüssel und setzt den Installationsprozess fort. Die Openflow BYOC-Bereitstellung wird nach etwa 20 Minuten Active.