You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CLI为多个S3存储桶启用服务端加密并排除指定桶?

S3批量启用默认SSE加密(排除指定桶)实现方案

实现思路

遍历你账号下所有S3存储桶,过滤掉你指定不需要开启加密的桶,对剩余桶批量执行加密配置命令即可,以下是Shell环境下用AWS CLI实现的具体步骤:


操作步骤

  1. 先整理好需要排除的存储桶名称,写入数组变量
  2. 遍历全量桶列表,匹配排除列表后执行加密配置

完整可执行脚本

# 定义需要排除的桶名,多个用空格分隔
EXCLUDE_BUCKETS=("bucket-no-encrypt-1" "bucket-no-encrypt-2" "bucket-no-encrypt-3")
# 获取当前账号所有S3桶名并遍历
aws s3api list-buckets --query "Buckets[].Name" --output text | tr '\t' '\n' | while read BUCKET_NAME; do
  # 判断当前桶是否在排除列表中
  if [[ ! " ${EXCLUDE_BUCKETS[@]} " =~ " ${BUCKET_NAME} " ]]; then
    echo "正在为桶 ${BUCKET_NAME} 配置默认AES256加密..."
    # 执行加密配置命令
    aws s3api put-bucket-encryption \
      --bucket "${BUCKET_NAME}" \
      --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'
  fi
done

注意事项

  • 首次执行建议先把aws s3api put-bucket-encryption开头的整段命令替换成echo "待执行加密配置:${BUCKET_NAME}",先试运行输出待操作的桶列表,确认没有误排除/误选中的桶后再执行真实配置
  • 如果你需要使用SSE-KMS而非SSE-S3(AES256)加密,只需修改--server-side-encryption-configuration参数中的配置,补充KMS密钥ID即可
  • 已配置过加密规则的桶重复执行该命令不会报错,只会覆盖更新为当前设置的加密规则

内容的提问来源于stack exchange,提问作者Deekshith Reddy Inugala

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:06:06