私はS3に格納したオブジェクトに公開アクセスを制限したいが、他のオブジェクトは同じ階層のキーに表示する。たとえば、私がbucketname/*
を一般に読めるようにしたいとします。しかし、IAMに明示的にアクセス権が与えられていないユーザーについては、bucketname/*/hidden/*
へのアクセスを防止したいと考えています。公開制限のAmazon S3バケットポリシー
私のようなバケットポリシーを使用していることを行うことができます。
{
"Id": "Policy123",
"Statement": [
{
"Sid": "Stmt123",
"Action": [ "s3:GetObject" ],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucketname/*",
"Principal": {
"AWS": [ "*" ]
}
},
{
"Sid": "Stmt124",
"Action": [ "s3:GetObject" ],
"Effect": "Deny",
"Resource": "arn:aws:s3:::bucketname/*/hidden/*",
"Principal": {
"AWS": [ "*" ]
}
]
}
しかし、それは、私は隠されたオブジェクトへのアクセスを許可されているすべてのIAMユーザー/グループを防ぎます。 のプリンシパルの設定は、認証されていないアクセスと一致する2番目のステートメントにありますか?または、より良いことに、プリンシパルのリストを表示する方法はありますか?はポリシーステートメントの影響を受けますか?
アップデート2016:http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#NotPrincipalタグを使用して「すべてのプリンシパルを意味する」ことができるようになりました。 – Claude