【发布时间】:2019-06-29 22:13:50
【问题描述】:
尝试创建 Amazon Web Services - S3 存储桶策略,但在运行脚本时出现以下错误。我的访问究竟在哪里被拒绝?这个问题是否与我设置 aws configur 的方式有关?
Traceback (most recent call last):
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
)
if __name__ == '__main__':
#print(create_bucket(BUCKET_NAME))
print(create_bucket_policy())
【问题讨论】: