시뮬레이터에서 액세스가 허용된다고 하면 실제 객체에 대한 AWS S3 액세스가 거부되었습니다.

시뮬레이터에서 액세스가 허용된다고 하면 실제 객체에 대한 AWS S3 액세스가 거부되었습니다.

사용자가 있습니다. Alfred User라고 부르겠습니다. IAM 정책은 다음과 같습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket-name/*",
                "arn:aws:s3:::my-bucket-name/",
                "arn:aws:s3:::my-bucket-name"
            ]
        }
    ]
}

IAM 시뮬레이터에서는 이 정책과 ARN을 사용하여 GetObject에 대해 "허용"을 얻습니다.arn:aws:s3:::my-bucket-name/my-object.xml

CLI에서 다음 명령에 대해 AccessDenied가 표시됩니다.aws s3 cp s3://my-bucket-name/my-object.xml temp/my-object.xml

GetObject 작업을 호출할 때 클라이언트 오류(AccessDenied)가 발생했습니다. 액세스가 거부되었습니다.

제가 생각할 수 있는 모든 것을 살펴봤지만 이 불일치를 설명할 수는 없습니다. 내가 무엇을 놓치고 있나요?

내가 시도한 것들

여기서 "creds"는 "AWS IAM 액세스 키"를 의미합니다.

  • IAM 시뮬레이터 - 작동합니다
  • 다른 IAM 자격 증명 세트 - 작동합니다.
  • 사용 aws s3 ls s3://my-bucket-name/- 이는 Alfred의 IAM 자격 증명 및 내 자격 증명과 함께 작동합니다.
  • 정책을 다른 AWS 계정의 유사하게 구성된 버킷과 비교했습니다. 내가 알 수 있듯이 정책은 거의 동일합니다.

답변1

알고 보니 이 버킷을 암호화하는 KMS 키에 대한 권한이었습니다. 키는 루트 계정이 소유하므로 일반적인 IAM 액세스로는 키를 찾을 수 없으며 키에 대한 정책도 볼 수 없습니다.

관련 정보