Amazon EC2 Auto Scaling을 사용하여 암호화된 AMI 또는 암호화된 볼륨으로 EC2 인스턴스를 시작할 수 없습니다.

3분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) Auto Scaling이 암호화된 Amazon Machine Image(AMI) 또는 암호화된 볼륨이 사용된 인스턴스를 시작하지 못했습니다. Amazon EC2 Auto Scaling을 생성한 AWS Identity and Access Management (IAM) ID에는 관리자 권한이 있습니다.

간략한 설명

Amazon EC2 Auto Scaling은 다른 AWS 서비스를 호출하는 데 필요한 권한을 위해 서비스 연결 역할을 사용합니다. SLR 권한은 하드코딩되므로 변경할 수 없습니다. Amazon EC2 Auto Scaling SLR에 전달되는 기본 권한에는 AWS Key Management Service(AWS KMS) 키에 액세스할 수 있는 권한이 포함되지 않습니다.

Amazon EC2 Auto Scaling으로 Amazon Elastic Block Store(Amazon EBS) 볼륨 또는 AMI를 암호화하려면 AWS 관리형 키 또는 고객 관리형 키를 사용하세요. Amazon EC2 Auto Scaling에는 AWS 관리형 키를 사용하기 위한 추가 권한이 필요하지 않습니다. 하지만 Amazon EC2 Auto Scaling SLR에는 고객 관리형 키와 함께 추가 권한이 있어야 합니다.

해결 방법

다음 예에서는 기본 Amazon EC2 Auto Scaling SLR AWSServiceRoleForAutoScaling을 사용하지만 고유한 역할 이름을 생성할 수 있습니다.

AWS KMS 계정이 아닌 Amazon EC2 Auto Scaling 그룹을 소유한 계정에서 AWS KMS 권한 부여를 생성해야 합니다. 자세한 내용은 ](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)Grants in AWS KMS[를 참조하세요.

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

Amazon EC2 Auto Scaling은 동일한 AWS 계정에 있는 고객 관리형 키를 사용합니다.

지침에 따라 키 정책을 변경하고 다음 예제 문을 추가합니다.

참고: 123456789012를 Amazon EC2 Auto Scaling 그룹이 배포된 계정 ID로 바꾸세요.

{    "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은 외부 AWS 계정에 있는 고객 관리형 키를 사용합니다.

  1. 지침에 따라 키 정책을 변경하세요. 외부 AWS 계정에 있는 IAM 엔터티가 CreateGrant API 작업을 수행할 수 있도록 키 정책을 수정하세요.

    {    "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. Amazon EC2 Auto Scaling 그룹을 소유한 AWS 계정의 IAM 엔터티 자격 증명과 create-grant AWS CLI 명령을 사용하세요.
    참고: 444455556666을 KMS 키가 있는 계정 ID로 바꾸세요.

    $ 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

    IAM 엔터티에 CreateGrant API 작업을 수행할 권한이 있는지 확인하세요. CreateGrant 권한이 누락된 경우, IAM 엔터티의 연결된 정책에 다음 문을 추가하세요.

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

관련 정보

Amazon EC2 Auto Scaling의 서비스 연결 역할

암호화된 볼륨과 함께 사용하기 위한 필수 KMS 키 정책

AWS 공식
AWS 공식업데이트됨 7달 전
댓글 없음