Non riesco ad avviare le istanze EC2 con AMI o volumi crittografati utilizzando il Dimensionamento automatico Amazon EC2

4 minuti di lettura
0

Il Dimensionamento automatico di Amazon Elastic Compute Cloud (Amazon EC2) non è riuscito ad avviare le istanze utilizzando le Amazon Machine Image (AMI) crittografate o i volumi crittografati. L'identità di AWS Identity and Access Management (IAM) creata con il Dimensionamento automatico Amazon EC2 dispone delle autorizzazioni di amministratore.

Breve descrizione

Il Dimensionamento automatico Amazon EC2 utilizza i ruoli collegati ai servizi per le autorizzazioni necessarie a chiamare altri servizi AWS. Le autorizzazioni per i ruoli SLR sono codificate e quindi non possono essere modificate. Le autorizzazioni predefinite fornite ai ruoli SLR di Dimensionamento automatico Amazon EC2 non includono le autorizzazioni per accedere alle chiavi di Servizio di gestione delle chiavi AWS (AWS KMS).

Puoi utilizzare le chiavi gestite da AWS o le chiavi gestite dal cliente per crittografare i volumi o le AMI di Amazon Elastic Block Store (Amazon EBS) con il Dimensionamento automatico Amazon EC2. Il Dimensionamento automatico Amazon EC2 non richiede autorizzazioni aggiuntive per utilizzare le chiavi gestite da AWS. Tuttavia, il Dimensionamento automatico Amazon EC2 SLR deve disporre di autorizzazioni aggiuntive per le chiavi gestite dal cliente.

Risoluzione

Gli esempi seguenti utilizzano il ruolo SLR predefinito di Dimensionamento automatico Amazon EC2, ossia AWSServiceRoleForAutoScaling, tuttavia puoi anche creare un nome di ruolo univoco.

Le concessioni AWS KMS devono essere create dall'account titolare del gruppo con dimensionamento automatico Amazon EC2, non dall'account AWS KMS. Per ulteriori informazioni, consulta Concessioni in AWS KMS.

Nota: se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

Il Dimensionamento automatico Amazon EC2 utilizza una chiave gestita dal cliente presente nello stesso account AWS

Segui le istruzioni per modificare una policy della chiave e aggiungi la seguente dichiarazione di esempio:

Nota: sostituisci 123456789012 con l'ID dell'account in cui è distribuito il gruppo con dimensionamento automatico Amazon EC2.

{    "Sid": "Allow service-linked role use of the KMS",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
        ]
    },
    "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::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
        ]
    },
    "Action": [
        "kms:CreateGrant"
    ],
    "Resource": "*",
    "Condition": {
        "Bool": {
            "kms:GrantIsForAWSResource": true
        }
    }
}

Il Dimensionamento automatico Amazon EC2 utilizza una chiave gestita dal cliente presente in un account AWS esterno

  1. Segui le istruzioni per modificare una policy della chiave. Modifica la policy della chiave per concedere le autorizzazioni necessarie all'entità IAM presente nell'account AWS esterno per eseguire l'operazione API CreateGrant:

    {    "Sid": "Allow external account 111122223333 use of the KMS",
        "Effect": "Allow",
        "Principal": {
            "AWS": [
                "arn:aws:iam::111122223333:root"
            ]
        },
        "Action": [
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey"
        ],
        "Resource": "*"
    },
    {
        "Sid": "Allow attachment of persistent resources in external account 111122223333",
        "Effect": "Allow",
        "Principal": {
            "AWS": [
                "arn:aws:iam::111122223333:root"
            ]
        },
        "Action": [
            "kms:CreateGrant"
        ],
        "Resource": "*"
    }
  2. Usa il comando di AWS CLI create-grant con le credenziali di un'entità IAM nell'account AWS titolare del gruppo con dimensionamento automatico Amazon EC2:
    Nota: sostituisci 444455556666 con l'ID dell'account in cui è presente la chiave KMS.

    $ aws kms create-grant --key-id arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling --operations Decrypt GenerateDataKeyWithoutPlaintext ReEncryptFrom ReEncryptTo CreateGrant

    Assicurati che l'entità IAM disponga delle autorizzazioni per eseguire l'operazione API CreateGrant. Se mancano le autorizzazioni CreateGrant, aggiungi la seguente dichiarazione alla policy associata all'entità IAM:

    {      "Sid": "AllowCreationOfGrantForTheKMSinExternalAccount444455556666",
          "Effect": "Allow",
          "Action": "kms:CreateGrant",
          "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d"
    }

Informazioni correlate

Service-linked roles for Amazon EC2 Auto Scaling

Required KMS key policy for use with encrypted volumes

AWS UFFICIALE
AWS UFFICIALEAggiornata 6 mesi fa