Amazon Simple Storage Service(Amazon S3)에 저장된 객체를 다운로드하고 AWS Key Management Service 관리형 키(SSE-KMS)를 통한 서버측 암호화를 사용하려고 합니다. 버킷에서 이러한 객체를 다운로드하려면 AWS KMS 키를 지정해야 합니까?

아닙니다. S3 버킷에서 SSE-KMS 암호화 객체를 다운로드할 때에는 AWS KMS 키 ID를 지정할 필요가 없습니다. 대신 AWS KMS 키를 복호화할 수 있는 권한이 필요합니다.

사용자가 GET 요청을 전송하면 Amazon S3는 해당 요청을 전송한 AWS Identity and Access Management(IAM) 사용자 또는 역할에 해당 객체와 연관된 키를 복호화할 권한이 있는지 확인합니다. IAM 사용자 또는 역할이 키와 동일한 AWS 계정에 소속된 경우 AWS KMS 키의 정책에 복호화 권한이 부여되어야 합니다.

참고: IAM 정책에 사용자가 키를 복호화할 수 있는 권한이 있는 경우에도 사용자는 키 정책에 해당 권한이 있어야 다운로드를 수행할 수 있습니다.

IAM 사용자 또는 역할이 키와 다른 계정에 소속된 경우에는 IAM 사용자의 정책과 키의 정책 모두에 복호화 권한이 부여되어야 합니다.

다음은 사용자에게 AWS KMS 키를 복호화하고 S3 버킷에서 다운로드하는 권한 모두를 허용하는 IAM 정책의 예입니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:kms:example-region-1:123456789012:key/example-key-id",
        "arn:aws:s3:::example-bucket-name/*"
      ]
    }
  ]
}

다음은 사용자에게 키의 복호화를 허용하는 키 정책 선언의 예입니다.

{
  "Sid": "Allow decryption of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::123456789012:user/Bob"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}

중요: 버킷과 다른 계정에 소속되는 IAM 사용자 또는 역할의 경우 버킷 정책도 객체에 대한 사용자 액세스를 허용하는지 확인하십시오. 예를 들어, 사용자가 버킷에서 다운로드해야 하는 경우 버킷 정책에 s3:GetObject 작업에 대한 사용자 권한도 있어야 합니다.

키를 복호화할 수 있는 권한이 부여되었으면 다음과 유사한 AWS 명령줄 인터페이스(AWS CLI) 명령을 사용하여 키 암호화된 S3 객체를 다운로드할 수 있습니다.

aws s3api get-object --bucket example-bucket-name --key dir/example-object-name example-object-name

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

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

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

게시 날짜: 2019년 2월 7일