암호화된 볼륨이 연결된 EC2 인스턴스를 시작했는데 인스턴스가 시작되지 않고 보류 중 상태에서 중지 상태로 즉시 전환됩니다. 해결하려면 어떻게 해야 합니까?

AWS Key Management Service(AWS KMS)를 사용하여 통합 서비스의 데이터를 보호하는 경우, IP 주소 조건 연산자를 지정하거나 동일한 액세스 정책 설명에 aws:SourceIp 조건 키를 지정할 때 주의하십시오. 암호화된 Amazon Elastic Block Store(Amazon EBS) 볼륨을 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 연결하면 Amazon EC2가 AWS KMS에 볼륨의 암호화된 데이터 키를 해독하라는 요청을 보냅니다. 이 요청은 사용자의 IP 주소가 아니라 EC2 인스턴스와 연결된 IP 주소에서 수신됩니다. SourceIp 조건 세트가 있는 경우 해독 요청이 거부되므로 인스턴스가 실패합니다.

이것이 원인인지 확인하려면 인스턴스에 대해 describe-instances 명령을 실행합니다. 다음 오류 메시지를 받으면 AWS KMS를 통해 해독을 요청하는 sourceIp 조건 세트가 있을 가능성이 높습니다.

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

AWS KMS를 사용하여 통합 서비스의 데이터를 보호하는 경우, IP 주소 조건 연산자를 지정하거나 동일한 액세스 정책 설명에 aws:SourceIp 조건 키를 지정할 때 주의하십시오. 암호화된 EBS 볼륨을 EC2 인스턴스에 연결하면 Amazon EC2가 AWS KMS에 볼륨의 암호화된 데이터 키를 해독하라는 요청을 보냅니다. 이 요청은 사용자의 IP 주소가 아니라 EC2 인스턴스와 연결된 IP 주소에서 수신됩니다. sourceIp 조건 세트가 있는 경우 요청이 거부되므로 인스턴스가 실패합니다.

조건 kms:ViaService를 사용합니다. AWS KMS가 사용자를 대신하여 해당 서비스의 상호 작용을 허용합니다.

참고: 로그인된 사용자가 있는 EC2 인스턴스는 이 조건과 상호 작용할 수 없습니다. 사용자를 대신하는 서비스만 상호 작용할 수 있습니다. 이 상호 작용은 검토할 수 있도록 AWS CloudTrail에 기록됩니다.

"userIdentity": {
  "sessionContext": {
    "sessionIssuer": {
      "accountId": "450822418798",
      "principalId": "450822418798:aws:ec2-infrastructure",
      "userName": "aws:ec2-infrastructure",
      "arn": "arn:aws:iam::450822418798:role/aws:ec2-infrastructure",
      "type": "Role"
     },
…
    "eventType": "AwsApiCall",
    "@log_group": "CloudTrail/AllRegionLogGroup",
    "awsRegion": "eu-west-1",
    "requestParameters": {
      "encryptionContext": {
        "aws:ebs:id": "vol-0ca158925aa9c1883"
      }    
},

이 예제에서는 API 호출에 대한 CloudTrail 항목이 AWS KMS에 만들어졌습니다. 이는 특정 IP 주소가 아니라 aws:ec2-infrastructure에서 호출됩니다. AWS KMS에 EC2와 상호 작용하도록 허용하는 정책을 사용자에 추가하면 API 호출을 완료할 수 있습니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2017년 7월 3일

업데이트된 날짜: 2018년 7월 18일