在 AWS S3 中,您可以使用 ACL(访问控制列表) 控制桶或对象的访问权限。ACL 可以与桶或对象一起使用,以控制哪些 AWS 账户或 AWS Identity and Access Management(IAM)角色可以访问所存储的数据。以下是一个使用 Python SDK(boto3)进行 S3 ACL 管理的示例:
import boto3
s3 = boto3.client('s3')
response = s3.list_buckets()
for bucket in response['Buckets']:
bucket_acl = s3.get_bucket_acl(Bucket=bucket['Name'])
print(bucket_acl)
import boto3
s3 = boto3.client('s3')
response = s3.list_buckets()
for bucket in response['Buckets']:
s3.put_bucket_acl(Bucket=bucket['Name'],
GrantFullControl='id=xxxxxxxxxxxxxxxxxx',
GrantRead='id=yyyyyyyyyyyyyyyyyyyyy',
GrantWrite='id=zzzzzzzzzzzzzzzzzzzzzzz')
在以上示例中,GrantFullControl
、GrantRead
和 GrantWrite
分别用于授予完全控制权限、读取权限和写入权限。在这些参数中,id=xxxxxxxxxxxxxxxxxx
、id=yyyyyyyyyyyyyyyyyyyyy
和 id=zzzzzzzzzzzzzzzzzzzzzzz
是 Amazon S3 的用户 ID,需要替换为实际的数据值。
import boto3
s3 = boto3.client('s3')
response = s3.list_objects_v2(Bucket='my-bucket')
for obj in response['Contents']:
obj_acl = s3.get_object_acl(Bucket='my-bucket', Key=obj['Key'])
print(obj_acl)
import boto3
s3 = boto3.client('s3')
s3.put_object_acl(Bucket='my-bucket',
Key='my-object',