You need to enable JavaScript to run this app. 如何使用boto3在新建S3存储桶时直接启用加密
优惠活动
大模型
产品
解决方案
定价
更多

如何使用boto3在新建S3存储桶时直接启用加密

问题解答

完全可以,你可以在调用boto3创建S3桶的逻辑后,立刻调用加密配置接口完成配置,全程不需要额外手动操作,代码层面一次性执行即可。

前提条件

  • 你的AWS身份已经配置好boto3的访问权限,持有s3:CreateBucket、s3:PutEncryptionConfiguration权限
  • 如果使用自定义KMS密钥加密,还需要持有对应KMS密钥的kms:GenerateDataKey权限

代码示例

示例1:新建桶并配置SSE-S3加密(AWS托管密钥)

import boto3

# 替换为你的目标区域
s3_client = boto3.client('s3', region_name='ap-northeast-1')
# 替换为你的桶名
bucket_name = 'your-target-bucket-name'

# 1. 创建存储桶
s3_client.create_bucket(
    Bucket=bucket_name,
    CreateBucketConfiguration={
        # 和前面的区域保持一致,us-east-1区域可以省略这个参数
        'LocationConstraint': 'ap-northeast-1'
    }
)

# 2. 配置桶默认加密为SSE-S3
s3_client.put_bucket_encryption(
    Bucket=bucket_name,
    ServerSideEncryptionConfiguration={
        'Rules': [
            {
                'ApplyServerSideEncryptionByDefault': {
                    'SSEAlgorithm': 'AES256'
                }
            }
        ]
    }
)

print(f"桶{bucket_name}创建完成,已启用SSE-S3默认加密")

示例2:新建桶并配置SSE-KMS加密(自定义KMS密钥)

import boto3

# 替换为你的目标区域
s3_client = boto3.client('s3', region_name='ap-northeast-1')
# 替换为你的桶名
bucket_name = 'your-target-bucket-name'
# 替换为你的KMS密钥ARN
kms_key_id = 'arn:aws:kms:ap-northeast-1:123456789012:key/xxxxxxx'

# 1. 创建存储桶
s3_client.create_bucket(
    Bucket=bucket_name,
    CreateBucketConfiguration={
        'LocationConstraint': 'ap-northeast-1'
    }
)

# 2. 配置SSE-KMS默认加密
s3_client.put_bucket_encryption(
    Bucket=bucket_name,
    ServerSideEncryptionConfiguration={
        'Rules': [
            {
                'ApplyServerSideEncryptionByDefault': {
                    'SSEAlgorithm': 'aws:kms',
                    'KMSMasterKeyID': kms_key_id
                },
                # 开启桶密钥可以降低KMS调用成本,建议开启
                'BucketKeyEnabled': True
            }
        ]
    }
)

print(f"桶{bucket_name}创建完成,已启用SSE-KMS默认加密")

注意事项

  • AWS自2023年1月5日起,所有新创建的S3桶默认自动启用SSE-S3加密,如果你没有自定义加密规则的需求,无需额外执行加密配置操作也默认加密。
  • 上述加密配置仅作用于后续新上传到桶的对象,不会自动加密桶创建前就存在的对象,逻辑和现有桶配置加密一致。
  • 如果你需要额外配置加密的例外规则,可以在ServerSideEncryptionConfiguration的Rules参数里添加对应过滤条件。

内容的提问来源于stack exchange,提问作者vikas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 18:30:00