要实现“AWS S3 | 允许授权对象仅从存储桶下载对象”,您可以使用AWS SDK(如AWS SDK for Java,AWS SDK for Python等)或AWS CLI来编写代码示例。
以下是使用AWS SDK for Python(boto3)的示例代码:
import boto3
# 创建S3客户端
s3_client = boto3.client('s3')
# 定义存储桶名称和对象键
bucket_name = 'your-bucket-name'
object_key = 'your-object-key'
# 定义授权对象的ARN
principal_arn = 'arn:aws:iam::123456789012:user/your-user'
# 创建存储桶策略
bucket_policy = {
'Version': '2012-10-17',
'Id': 'Policy1234567890123',
'Statement': [
{
'Sid': 'Stmt1234567890123',
'Effect': 'Allow',
'Principal': {
'AWS': principal_arn
},
'Action': 's3:GetObject',
'Resource': f'arn:aws:s3:::{bucket_name}/{object_key}'
}
]
}
# 将存储桶策略应用于存储桶
s3_client.put_bucket_policy(Bucket=bucket_name, Policy=json.dumps(bucket_policy))
请确保将your-bucket-name
替换为您的存储桶名称,your-object-key
替换为您的对象键,arn:aws:iam::123456789012:user/your-user
替换为您授权对象的ARN。
此示例代码将为指定的存储桶创建一个策略,允许指定的授权对象只能从该存储桶下载对象。