내용으로 건너뛰기

암호화된 Amazon EBS 볼륨이 있는 Amazon EC2 인스턴스의 실행 또는 시작 실패를 해결하려면 어떻게 해야 합니까?

3분 분량
0

암호화된 Amazon Elastic Block Store(Amazon EBS) 볼륨이 연결된 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작했습니다. 하지만 EC2 인스턴스가 시작되거나 실행되지 않습니다.

간략한 설명

실행 문제가 있는 인스턴스는 시작 시 Pending(보류 중) 상태에서 **Shutting down(종료 중)**을 거쳐 Terminated(종료됨) 상태로 이동할 수 있습니다.

또는 AWS Command Line Interface(AWS CLI)의 describe-instances 명령 출력에서 다음 오류 메시지가 수신될 수 있습니다.

" "StateReason": { "Code": "Client.InternalError" "Message": "Client.InternalError: Client error on launch" }"

이 문제는 암호화에 사용한 AWS Key Management Service(AWS KMS) 키가 **Enable(사용)**으로 설정되지 않은 경우 발생합니다. 또는 인스턴스를 시작한 AWS Identity and Access Management(IAM) 사용자 또는 역할에 필요한 AWS KMS 권한이 없는 경우 발생합니다.

참고: IAM 사용자에게 완전한 Amazon EC2 권한이 있더라도 AWS KMS 키에 대한 액세스 권한을 별도로 부여해야 합니다.

IAM 문제를 해결하려면 AWS KMS 키에 대한 액세스를 허용하는 정책을 생성한 후 IAM 엔터티에 해당 정책을 연결하십시오. 또는 AWS KMS 키 사용자에 IAM 엔터티를 추가하십시오.

해결 방법

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

AWS KMS 키 상태 확인

AWS KMS 키가 Enable(활성화)로 설정되어 있는지 확인합니다.

AWS KMS 키에 대한 액세스를 허용하는 정책을 생성하고 IAM 엔터티에 연결

다음 IAM 정책을 생성합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:Encrypt",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    {
      "Effect": "Allow",
      "Action": "kms:CreateGrant",
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
      "Condition": {
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    }
  ]
}

참고: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab를 사용 중인 AWS KMS 키의 Amazon 리소스 이름(ARN)으로 바꾸십시오.

그런 다음 정책을 IAM 역할 또는 사용자에게 연결하십시오.

AWS KMS 키 사용자에 IAM 엔터티 추가

다음 단계를 완료합니다.

  1. AWS KMS 콘솔을 엽니다.
  2. **AWS KMS console(AWS KMS 콘솔)**을 엽니다.
  3. **Key ID(키 ID)**에서 사용 중인 키 ID를 선택합니다.
  4. **Key users(키 사용자)**에서 **Add(추가)**를 선택합니다.
  5. **Name(이름)**에서 해당 IAM 사용자 또는 역할을 선택한 다음, **Add(추가)**를 선택합니다.
    참고: 기본 키 정책은 AWS 계정에 대한 액세스를 허용합니다. 대신 사용자 지정 키 정책을 사용하는 경우, 해당 AWS KMS 키 정책에서 다음 권한을 명시적으로 허용해야 합니다.
    {
          "Sid": "Allow use of the key",
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:iam::123456789012:role/MyRoleName",
              "arn:aws:iam::123456789012:user/MyUserName"
            ]
          },
          "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/MyRoleName",
              "arn:aws:iam::123456789012:user/MyUserName"
            ]
          },
          "Action": [
            "kms:CreateGrant",
            "kms:ListGrants",
            "kms:RevokeGrant"
          ],
          "Resource": "*",
          "Condition": {
            "Bool": {
              "kms:GrantIsForAWSResource": "true"
            }
          }
        }
    참고: arn:aws:iam::123456789012:role/MyRoleName을 사용 중인 IAM 역할 ARN으로, arn:aws:iam::123456789012:user/MyUserName을 사용 중인 IAM 사용자 ARN으로 바꾸십시오.

관련 정보

데이터 암호화를 통한 인증된 암호화가 AWS KMS API 직접 호출에 사용되었는지 어떻게 확인할 수 있습니까?

AWS KMS 내의 키 정책

Amazon Elastic Block Store(Amazon EBS)가 AWS KMS를 사용하는 방법

AWS 공식업데이트됨 7달 전