Ich kann mit Amazon EC2 Auto Scaling keine EC2 Instances mit verschlüsselten AMIs oder verschlüsselten Volumes starten

Lesedauer: 3 Minute
0

Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling konnte keine Instances starten, die verschlüsseltes Amazon Machine Image (AMI) oder verschlüsselte Volumes verwendeten. Die AWS Identitäts- und Zugriffsmanagement (IAM)-Identität, mit der Amazon EC2 Auto Scaling erstellt wurde, verfügt über Administratorrechte.

Kurzbeschreibung

Amazon EC2 Auto Scaling verwendet serviceverknüpfte Rollen für die erforderlichen Berechtigungen, um andere AWS-Services aufzurufen. Die Berechtigungen für SLR sind fest codiert und können daher nicht geändert werden. Die Standardberechtigungen, die an Amazon EC2 Auto Scaling SLR weitergegeben werden, beinhalten keine Berechtigungen für den Zugriff auf AWS Key Management Service (AWS KMS)-Schlüssel.

Sie können von AWS verwaltete Schlüssel oder vom Kunden verwaltete Schlüssel verwenden, um Amazon Elastic Block Store (Amazon EBS)-Volumes oder AMIs mit Amazon EC2 Auto Scaling zu verschlüsseln. Amazon EC2 Auto Scaling benötigt keine zusätzlichen Berechtigungen, um von AWS verwaltete Schlüssel zu verwenden. Amazon EC2 Auto Scaling SLR muss jedoch über zusätzliche Berechtigungen mit vom Kunden verwalteten Schlüsseln verfügen.

Lösung

In den folgenden Beispielen wird der standardmäßige Amazon EC2 Auto Scaling SLR AWSServiceRoleForAutoScaling verwendet. Sie können jedoch auch einen eindeutigen Rollennamen erstellen.

AWS-KMS-Berechtigungen müssen von dem Konto aus erstellt werden, dem die Auto-Scaling-Gruppe von Amazon EC2 Auto Scaling gehört, nicht über das AWS-KMS-Konto. Weitere Informationen finden Sie unter Berechtigungen in AWS KMS.

**Hinweis:**Sollten beim Ausführen von Befehlen der AWS Command Line Interface (AWS CLI) Fehler auftreten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Amazon EC2 Auto Scaling verwendet einen vom Kunden verwalteten Schlüssel, der sich im selben AWS-Konto befindet

Folgen Sie den Anweisungen zum Ändern einer Schlüsselrichtlinie und fügen Sie die folgende Beispielanweisung hinzu:

Hinweis: Ersetzen Sie 123456789012 durch die Konto-ID, unter der die Gruppe von Amazon EC2 Auto Scaling bereitgestellt wird.

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

Amazon EC2 Auto Scaling verwendet einen vom Kunden verwalteten Schlüssel, der sich in einem externen AWS-Konto befindet

  1. Folgen Sie den Anweisungen, um eine Schlüsselrichtlinie zu ändern. Ändern Sie die Schlüsselrichtlinie, sodass die IAM-Entität, die sich im externen AWS-Konto befindet, die CreateGrant-API-Aktion ausführen kann:

    {    "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. Verwenden Sie den AWS-CLI-Befehl create-grant mit den Anmeldeinformationen einer IAM-Entität, die in dem AWS-Konto vorhanden ist, dem die Gruppe von Amazon EC2 Auto Scaling gehört:
    Hinweis: Ersetzen Sie 444455556666 durch die Konto-ID, in der der KMS-Schlüssel vorhanden ist.

    $ 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

    Stellen Sie sicher, dass die IAM-Entität über die Berechtigungen verfügt, um die CreateGrant-API-Aktion auszuführen. Wenn CreateGrant-Berechtigungen fehlen, fügen Sie der angehängten Richtlinie der IAM-Entität die folgende Anweisung hinzu:

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

Ähnliche Informationen

Serviceverknüpfte Rollen für Amazon EC2 Auto Scaling

Erforderliche KMS-Schlüsselrichtlinie für die Verwendung mit verschlüsselten Volumes

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten