
사용자가 있습니다. 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 액세스로는 키를 찾을 수 없으며 키에 대한 정책도 볼 수 없습니다.