我正在尝试为我的S3存储桶设置云前端分发。当前,S3存储桶已由不同的用户使用,并且为这些用户设置了存储桶策略。我想为完全不同的用户X设置cloudfront分发。
我已经创建了发行版,将用户X添加到了受信任的签名者中。现在,我知道我需要创建一个原始访问身份并修改存储桶策略以授予对该身份的访问权限,以便CF可以访问该存储桶。
我想确保我不会从已经拥有S3存储桶的用户那里夺走S3存储桶的访问权限,而是要授予CF访问该存储桶的权限。我已经修改了存储桶策略,如下所示。这是正确的方法吗?
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": “1”,
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::12345678:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::AAAAAAA/*”
},
{
"Sid": "2",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ABCDEFGHI”
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::AAAAAAA/*”
}
]
}
是的,这似乎是正确的。
使用以下逻辑处理IAM策略(包括存储区策略):
在当前情况下,某些请求与一个语句匹配,某些请求与另一个语句匹配,并且在两种情况下,都允许该请求。任何与这两个语句都不匹配的请求将被隐式拒绝。
其中有些人却难倒了是不完全了解一个事实,即没有匹配否认声明是有史以来由一个匹配允许覆盖,但每一个匹配允许语句总是通过匹配否认覆盖。您的声明不否认,所以这不是问题。
还请注意,所有策略语句都经过测试,因此语句声明的顺序并不重要。
评估策略的顺序对评估结果没有影响。评估所有策略,结果始终是允许或拒绝该请求。
http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句