Création d'une clé de chiffrement pour le stockage éphémère Fargate pour Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'une clé de chiffrement pour le stockage éphémère Fargate pour Amazon ECS

Créez une clé gérée par le client pour chiffrer les données stockées sur le stockage éphémère Fargate.

Note

Le chiffrement du stockage éphémère Fargate avec des clés gérées par le client n'est pas disponible pour les clusters de tâches Windows.

Le chiffrement du stockage éphémère Fargate avec des clés gérées par le client n'est pas disponible avant. platformVersions 1.4.0

Fargate réserve de l'espace sur un espace de stockage éphémère qui n'est utilisé que par Fargate, et cet espace ne vous est pas facturé. L'allocation peut être différente de celle des tâches clés non gérées par le client, mais l'espace total reste le même. Vous pouvez visualiser cette modification dans des outils tels quedf.

Les clés multirégionales ne sont pas prises en charge pour le stockage éphémère Fargate.

KMSles alias de clé ne sont pas pris en charge pour le stockage éphémère de Fargate.

Pour créer une clé gérée par le client (CMK) afin de chiffrer le stockage éphémère pour Fargate in, procédez comme suit. AWS KMS

  1. Accédez au fichier https://console.aws.amazon.com/km.

  2. Suivez les instructions relatives à la création de clés dans le guide du AWS Key Management Service développeur.

  3. Lorsque vous créez votre AWS KMS clé, assurez-vous de fournir les autorisations d'opération AWS KMS pertinentes au service Fargate dans les politiques clés. Les API opérations suivantes doivent être autorisées dans la politique pour utiliser votre clé gérée par le client avec les ressources de votre ECS cluster Amazon.

    • kms:GenerateDataKeyWithoutPlainText‐ Appelez GenerateDataKeyWithoutPlainText pour générer une clé de données cryptée à partir de la AWS KMS clé fournie.

    • kms:CreateGrant‐ Ajoute une subvention à une clé gérée par le client. Accorde un accès de contrôle à une AWS KMS clé spécifiée, ce qui permet d'autoriser les opérations requises par Amazon ECS Fargate. Pour plus d'informations sur l'utilisation des subventions, consultez le guide du AWS Key Management Service développeur. Cela permet à Amazon ECS Fargate d'effectuer les opérations suivantes :

      • Appelez Decrypt pour AWS KMS obtenir la clé de chiffrement permettant de déchiffrer les données de stockage éphémères.

      • Configurez un directeur partant à la retraite pour permettre au service deRetireGrant.

    • kms:DescribeKey‐ Fournit les informations relatives aux clés gérées par le client pour permettre ECS à Amazon de valider la clé si elle est symétrique et activée.

    L'exemple suivant montre une politique de AWS KMS clé que vous devez appliquer à la clé cible pour le chiffrement. Pour utiliser les exemples de déclarations de politique, user input placeholders remplacez-les par vos propres informations. Comme toujours, configurez uniquement les autorisations dont vous avez besoin, mais vous devrez AWS KMS fournir des autorisations à au moins un utilisateur pour éviter les erreurs.

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

    Les tâches Fargate utilisent les clés de contexte de chiffrement aws:ecs:clusterName et pour aws:ecs:clusterAccount les opérations cryptographiques effectuées avec la clé. Les clients doivent ajouter ces autorisations pour restreindre l'accès à un compte et/ou à un cluster spécifiques. Utilisez le nom du cluster et non le nom ARN lorsque vous le spécifiez.

    Consultez Contexte de chiffrement dans le AWS KMS guide du développeur pour en savoir plus.

    Lorsque vous créez ou mettez à jour un cluster, vous avez la possibilité d'utiliser la clé de conditionfargateEphemeralStorageKmsKeyId. Cette clé de condition permet aux clients d'avoir un contrôle plus précis des IAM politiques. Les mises à jour de fargateEphemeralStorageKmsKeyId configuration ne prennent effet que sur les nouveaux déploiements de services.

    L'exemple suivant montre comment autoriser les clients à n'accorder des autorisations qu'à un ensemble spécifique de AWS KMS clés approuvées.

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

    Voici un exemple de refus des tentatives de suppression de AWS KMS clés déjà associées à un cluster.

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

    Les clients peuvent voir si leurs tâches non gérées ou leurs tâches de service sont chiffrées à l'aide de la clé à l'aide des describe-services commandes AWS CLI describe-tasksdescribe-cluster, ou.

    Pour plus d'informations, consultez la section Clés AWS KMS de condition du guide du AWS KMS développeur.

AWS Management Console
  1. Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2.

  2. Choisissez Clusters dans la navigation de gauche et Créez un cluster en haut à droite ou choisissez un cluster existant. Pour un cluster existant, choisissez Mettre à jour le cluster en haut à droite.

  3. Dans la section Chiffrement du flux de travail, vous aurez la possibilité de sélectionner votre AWS KMS clé sous Stockage géré et Stockage éphémère Fargate. Vous pouvez également choisir de créer une AWS KMS clé à partir d'ici.

  4. Choisissez Créer une fois que vous avez fini de créer votre nouveau cluster ou Mettre à jour, si vous mettiez à jour un cluster existant.

AWS CLI

Voici un exemple de création d'un cluster et de configuration de votre stockage éphémère Fargate à l'aide AWS CLI du (remplacez red les valeurs par les vôtres) :

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 }
AWS CloudFormation

Voici un exemple de modèle de création d'un cluster et de configuration de votre stockage éphémère Fargate à l'aide AWS CloudFormation du (remplacez red les valeurs par les vôtres) :

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"