Comment puis-je utiliser une AMI chiffrée dans mon groupe Auto Scaling qu'un autre compte a partagé avec moi ?

Lecture de 4 minute(s)
0

Je souhaite utiliser une Amazon Machine Image (AMI) chiffrée dans mon groupe AWS Auto Scaling qu'un autre compte AWS a partagé avec moi. L'AMI est chiffrée à l'aide d'une clé gérée par le client AWS Key Management Service (AWS KMS).

Brève description

La stratégie de clé AWS KMS pour la clé AWS KMS doit permettre à l'identité AWS Identity and Access Management (IAM) de votre compte d'utiliser l'AMI pour lancer une instance. Pour lancer des instances, les groupes Auto Scaling utilisent des autorisations accordées par des rôles liés à un service (SLR).

Pour utiliser l'AMI chiffrée dans votre groupe Auto Scaling, la stratégie de clé KMS doit fournir l'accès aux rôles suivants :

  • Le SRL associé au groupe Auto Scaling de votre compte.
  • L'identité IAM de votre compte pour créer un octroi permettant au SLR d'utiliser la clé.

Résolution

Pour utiliser l'AMI chiffrée dans votre groupe Auto Scaling, procédez comme suit :

  1. Modifiez la stratégie de clé KMS associée à la clé KMS qui chiffre l'AMI.
  2. Créez un octroi pour que le SRL utilise la clé.

Modifier la stratégie de clé KMS

Procédez comme suit :

  1. À partir du compte qui partage l'AMI chiffrée avec vous, ouvrez la console AWS KMS, puis sélectionnez la clé KMS.

  2. Dans la section Stratégie de clé, ajoutez les autorisations suivantes pour le SRL utilisé dans le groupe Auto Scaling de votre compte :

    kms:Encrypt
    kms:Decrypt
    kms:ReEncrypt*
    kms:GenerateDataKey*
    kms:DescribeKey
  3. Pour créer l’octroi dans votre compte, vous devez ajouter les autorisations kms:CreateGrant, kms:ListGrants et kms:RevokeGrant à la stratégie de clé. La stratégie doit également inclure les instructions Autoriser l’utilisation de la clé et Autoriser l’attachement de ressources persistantes.

    Vous trouverez ci-dessous un exemple de stratégie de clé. Remplacez SOURCE_ACCOUNT par l'ID du compte qui partage l'AMI chiffrée et DESTINATION_ACCOUNT par l’ID de votre compte :

    {
        "Version": "2012-10-17",
        "Id": "key-consolepolicy-3",
        "Statement": [
            {
                "Sid": "Enable IAM User Permissions",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::SOURCE_ACCOUNT:root"
                },
                "Action": "kms:*",
                "Resource": "*"
            },
            {
                "Sid": "Allow access for Key Administrators",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::SOURCE_ACCOUNT:user/AdminUser"
                },
                "Action": [
                    "kms:Create*",
                    "kms:Describe*",
                    "kms:Enable*",
                    "kms:List*",
                    "kms:Put*",
                    "kms:Update*",
                    "kms:Revoke*",
                    "kms:Disable*",
                    "kms:Get*",
                    "kms:Delete*",
                    "kms:TagResource",
                    "kms:UntagResource",
                    "kms:ScheduleKeyDeletion",
                    "kms:CancelKeyDeletion"
                ],
                "Resource": "*"
            },
            {
                "Sid": "Allow use of the key",
                "Effect": "Allow",
                "Principal": {
                    "AWS": [
                        "arn:aws:iam::DESTINATION_ACCOUNT:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling",
                        "arn:aws:iam::SOURCE_ACCOUNT:user/AdminUser"
                    ]
                },
                "Action": [
                    "kms:Encrypt",
                    "kms:Decrypt",
                    "kms:ReEncrypt*",
                    "kms:GenerateDataKey*",
                    "kms:DescribeKey"
                ],
                "Resource": "*"
            },
            {
                "Sid": "Allow attachment of persistent resources",
                "Effect": "Allow",
                "Principal": {
                    "AWS": [
                        "arn:aws:iam::DESTINATION_ACCOUNT:user/DESTINATION_USER",
                        "arn:aws:iam::SOURCE_ACCOUNT:user/AdminUser"
                    ]
                },
                "Action": [
                    "kms:CreateGrant",
                    "kms:ListGrants",
                    "kms:RevokeGrant"
                ],
                "Resource": "*"
            }
        ]
    }
    

    Remarque : Lorsque vous utilisez la console de gestion AWS pour créer une clé KMS et inclure des ID de comptes externes en tant qu'utilisateurs, la stratégie de clé applique automatiquement kms:GrantIsForAWSResource. La clé de condition kms:GrantIsForAWSResource ne permet pas aux utilisateurs de créer des octrois pour le SRL. Assurez-vous que la stratégie de clé ne contient pas cette clé de condition dans l'instruction Autoriser l’attachement de ressources persistantes.

Créer un octroi pour le SLR

Remarque : Si des erreurs s’affichent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

L’octroi permet au SRL de votre compte d'effectuer des actions cryptographiques avec la clé KMS du compte source.

Dans votre compte, exécutez la commande create-grant de l’AWS CLI à partir du paramètre DESTINATION_USER spécifié dans la stratégie de clé :

aws kms create-grant --key-id [X] \
--grantee-principal [Y] \
--operations Decrypt Encrypt GenerateDataKey GenerateDataKeyWithoutPlaintext \
ReEncryptFrom ReEncryptTo CreateGrant DescribeKey

Remarque : Remplacez [X] par l'ARN de la clé KMS du compte source et [Y] par l'ARN SLR de votre compte.

Informations connexes

Stratégie de clé KMS requise pour une utilisation avec des volumes chiffrés

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an