2017-07-14 54 views
0

我想下载一些文件,我已经上传到S3与一些Python代码,但我越来越头痛尝试使用紧缩政策。为什么此AWS IAM策略仅在资源上使用星号?

我可以列出所有文件在桶,但当我尝试做下载他们与我所看到的是一个正确的政策,我得到botocore.exceptions.ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden

然后,当我尝试添加工作不同的策略对于2个不同的桶,我添加了桶名称的一部分,然后添加了星号,出于某种原因,同样的确实可行。

那么有人可以告诉我为什么会发生这种情况吗?

例如,这是什么样的作品就像一个魅力:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1499955913000", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:GetObject", 
       "s3:ListBucket" 
      ], 
      "Resource": "arn:aws:s3:::THE-BEGINING-OF-THE-NAME*" 
     } 
    ] 
} 

但这并不:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1499955913000", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:GetObject", 
       "s3:ListBucket" 
      ], 
      "Resource": "arn:aws:s3:::THE-EXACT-COMPLETE-FULL-NAME" 
     } 
    ] 
} 

我可以添加Python代码的下载,如果是相关的,但这问题似乎足够长,代码很简单

+0

难以让我们告诉你任何事情,而无需查看导致问题的实际字符串。 – RaGe

回答

0

似乎我只是需要一些橡皮鸭调试,答案是我认为反直觉,但容易:

它似乎是ARN它不仅是AWS资源本身的标识符,而且也是它的内容。因此,给予权限时,你需要给权限“斗”的上市了,而“内容”下载它

导致这样的政策:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1499955913000", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:GetObject", 
       "s3:ListBucket" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::THE-EXACT-COMPLETE-FULL-NAME", 
       "arn:aws:s3:::THE-EXACT-COMPLETE-FULL-NAME/*" 
     } 
    ] 
} 

其中,作为我说,控制了桶本身,没有星号,并且在斜杠后面有任何内容

相关问题