我想限制公共存取我們存儲在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用戶/用戶組訪問隱藏的對象。在第二條語句中是否有本金的設置,只有匹配未經身份驗證的訪問?或者更好的是,有沒有辦法只列出那些校長那應該不是受政策聲明影響?
更新2016年:您現在可以使用http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#NotPrincipal標記來表示「所有校長,但... – Claude 2016-11-18 21:35:02