Einen Verschlüsselungsschlüssel für flüchtigen Fargate-Speicher für Amazon ECS erstellen - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einen Verschlüsselungsschlüssel für flüchtigen Fargate-Speicher für Amazon ECS erstellen

Erstellen Sie einen kundenverwalteten Schlüssel zum Verschlüsseln von Daten, die im flüchtigen Fargate-Speicher gespeichert sind.

Anmerkung

Die Verschlüsselung von flüchtigem Fargate-Speicher mit kundenverwalteten Schlüsseln ist für Windows-Aufgaben-Cluster nicht verfügbar.

Die Verschlüsselung von flüchtigem Fargate-Speicher mit kundenverwalteten Schlüsseln ist für platformVersionsfrüher als 1.4.0 nicht verfügbar.

Fargate reserviert Speicherplatz auf einem flüchtigen Speicher, der nur von Fargate genutzt wird, und Ihnen wird der Speicherplatz nicht in Rechnung gestellt. Die Zuteilung kann sich von Schlüsselaufgaben unterscheiden, die nicht vom Kunden verwaltet werden, aber der Gesamtspeicherplatz bleibt gleich. Sie können sich diese Änderung in Tools wie df anzeigen.

Multiregionale Schlüssel werden für flüchtigen Fargate-Speicher nicht unterstützt.

KMS-Schlüsselaliase werden für flüchtigen Fargate-Speicher nicht unterstützt.

Gehen Sie wie folgt vor, um einen vom Kunden verwalteten Schlüssel (CMK) zur Verschlüsselung von kurzlebigem Speicher für Fargate in AWS KMS zu erstellen.

  1. Navigieren Sie zu /kms. https://console.aws.amazon.com

  2. Folgen Sie den Anweisungen zum Erstellen von Schlüsseln im Entwicklerhandbuch für AWS Key Management Service.

  3. Achten Sie bei der Erstellung Ihres AWS KMS Schlüssels darauf, dass Sie in den wichtigsten Richtlinien die für den Fargate-Dienst relevanten AWS KMS Betriebsberechtigungen angeben. Um Ihren kundenverwalteten Schlüssel mit Ihren Amazon-ECS-Cluster-Ressourcen zu verwenden, müssen die folgenden API-Vorgänge in der Richtlinie zugelassen sein:

    • kms:GenerateDataKeyWithoutPlainText‐ Rufen Sie anGenerateDataKeyWithoutPlainText, um aus dem bereitgestellten Schlüssel einen verschlüsselten AWS KMS Datenschlüssel zu generieren.

    • kms:CreateGrant – Fügt einem kundenverwalteten Schlüssel eine Zuweisung hinzu. Gewährt Kontrollzugriff auf einen bestimmten AWS KMS Schlüssel, der den Zugriff auf Grant-Operationen ermöglicht, die Amazon ECS Fargate benötigt. Weitere Informationen zum Verwenden von Zuweisungen finden Sie im Entwicklerhandbuch für AWS Key Management Service. Das erlaubt es Amazon ECS Fargate, Folgendes zu tun:

      • Rufen Sie anDecrypt, AWS KMS um den Verschlüsselungsschlüssel zum Entschlüsseln der kurzlebigen Speicherdaten zu erhalten.

      • Einen Prinzipal für die Außerbetriebnahme einrichten, damit der Service in den Status RetireGrant wechseln kann.

    • kms:DescribeKey – Stellt die Details des kundenverwalteten Schlüssels bereit, damit Amazon ECS den Schlüssel validieren kann, falls dieser symmetrisch ist und aktiviert wurde.

    Das folgende Beispiel zeigt eine AWS KMS Schlüsselrichtlinie, die Sie auf den Zielschlüssel für die Verschlüsselung anwenden würden. Wenn Sie diese Beispiels-Richtlinienanweisungen verwenden möchten, ersetzen Sie die user input placeholders durch Ihre eigenen Informationen. Konfigurieren Sie wie immer nur die Berechtigungen, die Sie benötigen, aber Sie müssen mindestens einem Benutzer Berechtigungen gewähren AWS KMS , um Fehler zu vermeiden.

    { "Sid": "Allow generate data key access for Fargate tasks.", "Effect": "Allow", "Principal": { "Service":"fargate.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:ecs:clusterAccount": [ "customerAccountId" ], "kms:EncryptionContext:aws:ecs:clusterName": [ "clusterName" ] } }, "Resource": "*" }, { "Sid": "Allow grant creation permission for Fargate tasks.", "Effect": "Allow", "Principal": { "Service":"fargate.amazonaws.com" }, "Action": [ "kms:CreateGrant" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:ecs:clusterAccount": [ "customerAccountId" ], "kms:EncryptionContext:aws:ecs:clusterName": [ "clusterName" ] }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt" ] } }, "Resource": "*" }, { "Sid": "Allow describe key permission for cluster operator - CreateCluster and UpdateCluster.", "Effect": "Allow", "Principal": { "AWS":"arn:aws:iam::customerAccountId:role/customer-chosen-role" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" }

    Fargate-Aufgaben verwenden die Verschlüsselungskontext-Schlüssel aws:ecs:clusterAccount und aws:ecs:clusterName für kryptografische Vorgänge mit dem Schlüssel. Kunden sollten diese Berechtigungen hinzufügen, um den Zugriff auf einen bestimmten and/or Kontocluster einzuschränken. Verwenden Sie den Cluster-Namen und nicht den ARN, wenn Sie den Cluster angeben.

    Weitere Informationen finden Sie unter Verschlüsselungskontext im AWS KMS -Entwicklerhandbuch.

    Wenn Sie einen Cluster erstellen oder aktualisieren, haben Sie die Option, den Bedingungsschlüssel fargateEphemeralStorageKmsKeyId zu verwenden. Dieser Bedingungsschlüssel ermöglicht Kunden eine genauere Kontrolle über die IAM-Richtlinien. Aktualisierungen der fargateEphemeralStorageKmsKeyId-Konfiguration werden nur bei neuen Servicebereitstellungen wirksam.

    Im Folgenden finden Sie ein Beispiel dafür, wie Kunden nur einem bestimmten Satz genehmigter AWS KMS Schlüssel Berechtigungen gewähren können.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:UpdateCluster" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:fargate-ephemeral-storage-kms-key": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } } } ] }

    Als Nächstes folgt ein Beispiel für die Ablehnung von Versuchen, AWS KMS Schlüssel zu entfernen, die bereits einem Cluster zugeordnet sind.

    JSON
    { "Version":"2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "ecs:CreateCluster", "ecs:UpdateCluster" ], "Resource": "*", "Condition": { "Null": { "ecs:fargate-ephemeral-storage-kms-key": "true" } } } }

    Kunden können mithilfe der Befehle, oder sehen, ob ihre nicht verwalteten Aufgaben oder Serviceaufgaben mithilfe des AWS CLI describe-tasks Schlüssels verschlüsselt sind. describe-cluster describe-services

    Weitere Informationen finden Sie unter Bedingungsschlüssel für AWS KMS im Entwicklerhandbuch für AWS KMS.

AWS-Managementkonsole
  1. Öffnen Sie die Konsole auf https://console.aws.amazon.com/ecs/Version 2.

  2. Wählen Sie im linken Navigationsbereich Cluster und oben rechts entweder Cluster erstellen oder wählen Sie einen vorhandenen Cluster aus. Wählen Sie für einen vorhandenen Cluster oben rechts die Option Cluster aktualisieren aus.

  3. Im Abschnitt Verschlüsselung des Workflows haben Sie die Möglichkeit, Ihren AWS KMS Schlüssel unter Managed Storage und Fargate Ephemeral Storage auszuwählen. Sie können von hier aus auch wählen, ob Sie einen AWS KMS Schlüssel erstellen möchten.

  4. Wählen Sie Erstellen, wenn Sie mit der Erstellung Ihres neuen Clusters fertig sind, oder Aktualisieren, wenn Sie einen vorhandenen aktualisieren wollten.

AWS CLI

Im Folgenden finden Sie ein Beispiel für die Erstellung eines Clusters und die Konfiguration Ihres kurzlebigen Fargate-Speichers mithilfe von AWS CLI (ersetzen Sie die red Werte durch Ihre eigenen):

aws ecs create-cluster --cluster clusterName \ --configuration '{"managedStorageConfiguration":{"fargateEphemeralStorageKmsKeyId":"arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}}' { "cluster": { "clusterArn": "arn:aws:ecs:us-west-2:012345678901:cluster/clusterName", "clusterName": "clusterName", "configuration": { "managedStorageConfiguration": { "fargateEphemeralStorageKmsKeyId": "arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } }, "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [], "tags": [], "settings": [], "capacityProviders": [], "defaultCapacityProviderStrategy": [] }, "clusterCount": 5 }
CloudFormation

Im Folgenden finden Sie eine Beispielvorlage für die Erstellung eines Clusters und die Konfiguration Ihres kurzlebigen Fargate-Speichers mithilfe von CloudFormation (ersetzen Sie die red Werte durch Ihre eigenen):

AWSTemplateFormatVersion: 2010-09-09 Resources: MyCluster: Type: AWS::ECS::Cluster Properties: ClusterName: "clusterName" Configuration: ManagedStorageConfiguration: FargateEphemeralStorageKmsKeyId: "arn:aws:kms:us-west-2:012345678901:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"