根据以下文件:
Restricting Access to a Specific HTTP Referrer
,我已授予对给定域集的访问权限,并按照指示拒绝访问除这些域以外的任何站点。
除了尝试使用根凭据或任何IAM用户执行任何操作外,这一切都很好。
它接着说:
此示例防止所有用户(包括根用户)
执行所有Amazon S3操作,包括管理bucket策略。
考虑添加第三个Sid以授予根用户s3:*操作。
如果删除了Sid#2,它会起作用,但如果是根用户或IAM记录,我看不出有任何方法可以消除这种情况。
问题是如何“添加第三个sid”。
很明显,我是AWS许可的新手。我尝试了很多方法来指定这个神奇的“第三个sid”,但很明显我做得不对。我尝试了许多文档的变体,如下面的,但没有运气,也不清楚在策略中在何处/如何授予Root权限。
{
"Sid": "Allow Root All Access",
"Effect": "Allow",
"Principal": {
"AWS":"arn:aws:iam::123456789012:root"
"AWS": "123456789012",
"CanonicalUser": "57bb2cb8as978f89sreuruapouduasp8udc5ba524fe20eb22853f19088600a67"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::our-bucket/*"
}
从示例中实施的策略,确实有效(太好)
{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
{
"Sid": "Allow get requests originating from Our Site.",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::our-bucket/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.oursite.com/*",
"https://www.oursite.com/*"
]
}
}
},
{
"Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::our-bucket/*",
"Condition": {
"StringNotLike": {
"aws:Referer": [
"*oursite.com/*"
]
}
}
}
]
}
提前感谢任何能够提供帮助的人!