내가 원하는 것을 얻기 위해 버킷 정책을 설정하는 법을 배울 수 없습니다. 어떤 도움을 많이 주시면 감사하겠습니다! 내 계정객체 acl이 public 일 때 S3 버킷 정책을 (대부분) 비공개로 설정하는 방법은 무엇입니까?
- 사용자가 사용자 정책을 통해 액세스 할 수 있으므로 제외하고 액세스 할 수 있어야하지 않는다 특히 그들
- 익명 사용자 (또는 내 AWS 계정 외부 사람)에 부여 된 액세스를 필요가 없습니다 : 내 원하는 규칙은 :
- 하나의 폴더/temp_public에 공용 GetObject가 있어야합니다 (예 : 파일을 얻을 수있는 URL을 알고있는 경우)
- 이러한 정책은 객체 ACL이 설정되기 때문에 버킷에있는 파일의 객체 ACL을 무시해야합니다. 공개 읽기.
버킷 정책을 만드는 이유는 버킷에있는 객체의 대부분이 공공는 ACL을 읽고 그 (실수로 파일이 업로드되었을 때 설정,하지만 난 개체의 ACL을 재정의 할 수 있도록 미래에 일어날 수있다 버킷 ACL 포함). temp_public 폴더를 무시
은, 난 그냥이 할 수있는 희망 :
{
"Version": "2008-10-17",
"Id": "Policy123456789",
"Statement": [
{
"Sid": "Stmt1",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
(123456789012
내 AWS 계정 번호),하지만 난 그 버킷 정책에 모든 사용자에 대해 거부 액세스 할 수 있습니다. 이 경우 NotPrincipal이 작동하지 않는 것 같군요?
의견을 보내 주셔서 감사합니다.
로리
UPDATE : 크로스 게시 AWS 포럼에 here을하고 대답! 제가 확인했습니다 this answer에 대한 AWS 포럼에서 IP에