AWS - S3 - 创建存储桶策略 - 错误:访问被拒绝

0

【以下的问题经过翻译处理】 尝试创建 Amazon Web Services - S3 存储桶策略,但在运行脚本时出现以下错误。我的访问到底在哪里被拒绝?这个问题是否与我如何设置 aws configure 有关

追溯(最近一次溯源):

File "C:\Users*****\githubb\aws\s3operations.py", line 40, in <module> print(create_bucket_policy()) File "C:\Users\Patrick\githubb\aws\s3operations.py", line 36, in create_bucket_policy Policy=policy_string File "C:\Users\Patrick\Python36\lib\site-packages\botocore\client.py", line 357, in _api_call return self._make_api_call(operation_name, kwargs) File "C:\Users\Patrick\Python36\lib\site-packages\botocore\client.py", line 661, in _make_api_call raise error_class(parsed_response, operation_name) botocore.exceptions.ClientError: An error occur

red (AccessDenied) when calling the PutBucketPolicy operation: Access Denied

以下是我的脚本:

import boto3 import json

BUCKET_NAME ='patricksbucket'

def s3_client(): s3 = boto3.client('s3') """:type : pyboto3.s3""" return s3

def create_bucket(bucket_name): return s3_client().create_bucket( Bucket=bucket_name, CreateBucketConfiguration={ 'LocationConstraint': 'us-east-2' } )

def create_bucket_policy(): bucket_policy = { "Vesrion": "2012-10-17", "Statement":[ { "Sid": "AddPerm", "Effect": "Allow", "Principal": "", "Action":["s3:"], "Resource":["arn:aws:s3:::patricksbucket/*"] } ] } policy_string = json.dumps(bucket_policy)

return s3_client().put_bucket_policy(
Bucket=BUCKET_NAME,
Policy=policy_string
)

profile picture
专家
已提问 5 个月前36 查看次数
1 回答
0

【以下的回答经过翻译处理】 它可能由于多种原因而发生,但主要与您的凭据或策略有关。无论如何,您只需遵循权限规范,如我在您的代码中看到的那样,说明如何使用通配符授予所有内容

来自 Amazon Docs 的示例可以说明问题

"Action": "*"  
"Action": "s3:*"  

除上述原因外,另一个原因是您的凭据。例如,如果您使用 AWS CLI

$ aws configure  
AWS Access Key ID \[None]: AKIAIOSFODNN7EXAMPLE  
AWS Secret Access Key \[None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY  
Default region name \[None]: us-west-2  
Default output format \[None]: json

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则