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éer une clé gérée par le client pour le chiffrement des données stockées dans 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 sur les platformVersions antérieures à la version 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 différer des tâches de 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 que df.

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

Les alias de clé KMS ne sont pas pris en charge pour le stockage éphémère 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 de la section Création de clés dans le Guide du développeur AWS Key Management Service.

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

    • 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 un octroi à 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 à propos de l’Utilisation des octrois, consultez le Guide du développeur AWS Key Management Service. 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.

      • Configurer un principal sortant pour permettre au service de RetireGrant.

    • kms:DescribeKey : fournit les détails de la clé gérée par le client pour permettre à Amazon ECS 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 d’instructions de politique, remplacez les user input placeholders informations par les vôtres. 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:clusterAccount et aws:ecs:clusterName pour les opérations cryptographiques effectuées avec la clé. Les clients doivent ajouter ces autorisations pour restreindre l'accès à un and/or groupe de comptes spécifique. Utilisez le nom du cluster et non l’ARN lorsque vous spécifiez le cluster.

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

    Lors de la création ou de la mise à jour d’un cluster, vous avez la possibilité d’utiliser la clé de condition fargateEphemeralStorageKmsKeyId. Cette clé de condition permet aux clients d’exercer un contrôle plus précis sur les politiques IAM. Les mises à jour de configuration fargateEphemeralStorageKmsKeyId ne prennent effet que sur les nouveaux déploiements de service.

    Vous trouverez ci-dessous un exemple d'autorisation permettant aux clients d'accorder des autorisations uniquement à un ensemble spécifique de AWS KMS clés approuvées.

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

    Voici un exemple de refus des tentatives de suppression de AWS KMS clés déjà associées à 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" } } } }

    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 de condition pour AWS KMS dans le Guide du développeur AWS KMS.

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éer 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 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 }
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 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"