Creazione di una chiave di crittografia per l'archiviazione temporanea di Fargate per Amazon ECS - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di una chiave di crittografia per l'archiviazione temporanea di Fargate per Amazon ECS

Crea una chiave gestita dal cliente per crittografare i dati nell'archiviazione temporanea di Fargate.

Nota

La crittografia dell'archiviazione temporanea di Fargate con chiavi gestite dal cliente non è disponibile per i cluster di attività di Windows.

La crittografia dell'archiviazione temporanea di Fargate con chiavi gestite dal cliente non è disponibile sulle platformVersions precedenti alla 1.4.0.

Fargate riserva spazio sull'archiviazione temporanea utilizzata solo da Fargate e non viene addebitato alcun costo per lo spazio. L'allocazione potrebbe differire dalle attività chiave non gestite dal cliente, ma lo spazio totale rimane invariato. Puoi visualizzare questa modifica in strumenti come df.

Le chiavi multiregione non sono supportate per l'archiviazione temporanea di Fargate.

Gli alias delle chiavi KMS non sono supportati per l'archiviazione temporanea di Fargate.

Per creare una chiave gestita dal cliente (CMK) per crittografare lo storage temporaneo per AWS KMS Fargate in, procedi nel seguente modo.

  1. https://console---aws.amazon.com.rproxy.govskope.caPassa a /kms.

  2. Segui le istruzioni per la creazione di chiavi nella Guida per gli sviluppatori di AWS Key Management Service

  3. Durante la creazione della AWS KMS chiave, assicuratevi di fornire al servizio Fargate le autorizzazioni AWS KMS operative pertinenti nelle politiche chiave. Per utilizzare la chiave gestita dal cliente con le risorse del cluster di Amazon ECS, le seguenti operazioni API devono essere concesse nella policy della chiave gestita:

    • kms:GenerateDataKeyWithoutPlainText‐ Chiama GenerateDataKeyWithoutPlainText per generare una chiave dati crittografata dalla chiave fornita AWS KMS .

    • kms:CreateGrant: aggiunge una concessione a una chiave gestita dal cliente. Concede l'accesso di controllo a una AWS KMS chiave specificata, che consente l'accesso alle operazioni di concessione richieste da Amazon ECS Fargate. Per ulteriori informazioni sull'utilizzo delle concessioni, consulta la Guida per gli sviluppatori di AWS Key Management Service. Ciò consente ad Amazon ECS Fargate di effettuare le seguenti operazioni:

      • Chiama Decrypt per AWS KMS ottenere la chiave di crittografia per decrittografare i dati di archiviazione effimeri.

      • Configurare un principale ritirato per consentire al servizio di RetireGrant.

    • kms:DescribeKey: fornisce i dettagli della chiave gestita dal cliente per consentire ad Amazon ECS di convalidarla se è simmetrica e abilitata.

    L'esempio seguente mostra una politica AWS KMS chiave da applicare alla chiave di destinazione per la crittografia. Per usare gli esempi di dichiarazioni della policy, sostituire user input placeholders con le proprie informazioni. Come sempre, configura solo le autorizzazioni di cui hai bisogno, ma dovrai fornire AWS KMS le autorizzazioni ad almeno un utente per evitare errori.

    { "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": "*" }

    Le attività di Fargate utilizzano le chiavi contestuali di crittografia aws:ecs:clusterAccount e aws:ecs:clusterName per le operazioni di crittografia con la chiave. I clienti devono aggiungere queste autorizzazioni per limitare l'accesso a un cluster di account specifico. and/or Utilizza il nome del cluster e non l'ARN quando specifichi il cluster.

    Per ulteriori informazioni, consultare Contesto della crittografia nella Guida per gli sviluppatori di AWS KMS.

    Quando crei o aggiorni un cluster, puoi utilizzare una chiave di condizione fargateEphemeralStorageKmsKeyId. Tale chiave di condizione consente ai clienti di avere un controllo più granulare delle policy IAM. Gli aggiornamenti alla configurazione fargateEphemeralStorageKmsKeyId hanno effetto solo sulle nuove implementazioni di servizi.

    Di seguito è riportato un esempio di come consentire ai clienti di concedere le autorizzazioni solo a uno specifico set di chiavi approvate AWS KMS .

    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" } } } ] }

    Segue un esempio per negare i tentativi di rimuovere AWS KMS chiavi già associate a un cluster.

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

    I clienti possono verificare se le attività non gestite o le attività di servizio sono crittografate utilizzando la chiave utilizzando i AWS CLI describe-tasks comandidescribe-cluster, odescribe-services.

    Per ulteriori informazioni sulle chiavi, consulta Condition keys for AWS KMS nella Guida per gli sviluppatori di AWS KMS.

Console di gestione AWS
  1. Apri la console nella versione 2https://console.aws.amazon.com/ecs/.

  2. Scegli Cluster nella barra di navigazione a sinistra e Crea cluster in alto a destra oppure scegli un cluster esistente. Per un cluster esistente, scegli Aggiorna cluster in alto a destra.

  3. Nella sezione Crittografia del flusso di lavoro, avrai la possibilità di selezionare la tua AWS KMS chiave in Archiviazione gestita e Archiviazione effimera Fargate. Puoi anche scegliere di creare una AWS KMS chiave da qui.

  4. Scegli Crea una volta terminata la creazione del nuovo cluster o Aggiorna, se ne stavi aggiornando uno esistente.

AWS CLI

Di seguito è riportato un esempio di creazione di un cluster e configurazione dello storage temporaneo Fargate utilizzando (sostituisci AWS CLI red i valori con i tuoi):

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

Di seguito è riportato un modello di esempio per la creazione di un cluster e la configurazione dello storage temporaneo Fargate utilizzando (sostituisci CloudFormation red i valori con i tuoi):

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"