S3에 test-bucket
버킷을 설정하고 사용자 IAM 정책을 구성하여 다른 곳에서 호스팅되는 웹 응용 프로그램의 프로그래밍 방식 액세스를 허용하려고합니다. 이 폴더는 폴더가없는 단순한 평면 양동이입니다.Amazon S3 프로그래밍 방식 PUT 액세스 구성
IAM 구성에서 사용자를 추가하고 액세스 키 집합을 만들었습니다. 마지막으로, 나는이처럼 보이는 액세스 정책 설정이 사용
{
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:ListAllMyBuckets"
],
"Resource":"arn:aws:s3:::*"
},
{
"Effect":"Allow",
"Action":[
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource":"arn:aws:s3:::test-bucket"
},
{
"Effect":"Allow",
"Action":[
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource":"arn:aws:s3:::test-bucket/*"
}
]
}
을, 나는 성공적으로 프로그램 내 버킷의 내용을 나열하고 양동이에 개별 파일을 다운로드 할 수 있습니다.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
...
</Error>
나는이 정책이 GET 및 LIST 위해 일하는 것을 알고 : 나는 정책에서 선 "s3:GetObject"
을 제거 할 때 예를 들어, 다운로드가 더 이상 작동 내가 뭔가를 업로드 할 때 프로그래밍 나는 Access Denied
오류가 발생합니다. 하지만 내 인생에서 업로드가 작동하지 않는 이유를 알 수 없습니다. localhost에서 실행중인 webapp을 통해이 모든 것을 테스트하고 있습니다. 업로드 작업을하는 방법에 대한 아이디어가 있습니까?
권한을 변경하지 말고 새 파일을 업로드 할 때 설정해야합니다. 하지만 유감스럽게도 그것은 "s3 : ListBucket", "s3 : PutObject", "s3 : GetObject", "s3 : DeleteObject", "s3 : PutObjectAcl"을 허용해도 나를 위해 작동하지 않습니다 아직 AccessDenied 내 파이썬 스크립트 –
OMG에 대한 PutObject 동작은 ROLE로 만들어야하지만 Policy로 만들어서는 안됩니다. 정책과 같은 콘텐츠로 S3 역할을 만들었습니다 - IT WORK –