使用Python在 AWS S3 存储桶中创建存储桶策略
s3 存储桶的存储桶策略意味着可以应用于特定存储桶的权限和操作。 AWS S3 有一个可选策略,可用于限制或授予对 S3 存储桶资源的访问权限。请务必注意,存储桶策略以 JSON 格式定义。
为了在Python创建存储桶策略,我们将遵循以下步骤:
- 第一步:创建桶策略的第一步是我们需要导入Python SDK boto3。这将为我们提供访问 AWS 资源的方法。对于策略字符串转储,我们还需要导入 JSON。
import json
import boto3
- 第 2 步:第二步是我们需要创建一个策略字符串。策略字符串是一个键值对字典。其中第一个键是版本。第二个键将是语句中的语句,第一个键将是sid ,它将存储如何键入我们要添加的策略。第二个键是存储访问状态的 Effect,第三个键是存储谁有权访问的权限,第四个键是一个动作,我们可以执行什么类型的操作和最后一个此资源中我们将应用此策略的参数。
例子:
bucket_policy = {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::gfgbucket/*"]
}
]
}
第 3 步:第三步需要将存储桶策略字符串转换为 JSON。
json.dumps(bucket_policy)
第 4 步:第四步是将存储桶策略放入存储桶,我们需要调用put_bucket_policy()函数函数将获取第一个参数为存储桶名称,第二个参数为策略字符串。
put_bucket_policy(Bucket,policy)
第 5 步:最后一步是转到AWS->S3->Bucket->Permission->Bucket 策略并验证。
完整代码:
Python3
import json
import boto3
BUCKET_NAME='gfgbucket'
def create_bucket_policy():
bucket_policy = {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::gfgbucket/*"]
}
]
}
policy_string = json.dumps(bucket_policy)
s3_client().put_bucket_policy(
Bucket=BUCKET_NAME,
Policy=policy_string
)
输出: