【发布时间】:2025-12-22 02:10:05
【问题描述】:
我正在寻找使用 boto/boto3 修改 S3 存储桶策略。我在boto3中发现了两种模式,通过它我们可以对桶策略进行操作。
# i can get bucket policy object as follows
import boto3
s3_conn = boto3.resource('s3')
bucket_policy = s3_conn.BucketPolicy('bucket_name')
# i can make put(), load(), policy on bucket_policy object.
#similar in other way i can use following code
policy = s3_conn.get_bucket_policy(Bucket='bucket_name')
# similar to this there are two other calls put_bucket_policy and delete_bucket_policy.
我正在寻找可以添加更多属性的更新存储桶策略。
例如。我想在以下策略的 Statement 键下再添加一个条目。
{
"Version": "2012-10-17",
"Id": "Policy14564645656",
"Statement": [{
"Sid": "Stmt1445654645618",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::6164563645030:root"
},
"Action": "s3:Get*",
"Resource": "arn:aws:s3:::bucket_name/abc/*"
}]
}
有没有直接的方法可以做到这一点。一种非常奇怪的方法是在 JSON 中添加条目,然后将其作为新策略放置,但我正在寻找允许用户在不知道退出策略的情况下更新策略的调用。
【问题讨论】:
标签: amazon-web-services amazon-s3 boto boto3