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

如何通过AWS CLI获取SSM参数的Description字段?

解决AWS CLI获取SSM参数Description字段的问题

问题原因

你之前使用的两个命令受接口返回逻辑限制,无法获取Description字段:

  • get-parameters-by-path 默认仅返回参数的名称、类型、值和版本,不包含Description元数据,因此无论是否添加--query参数都无法获取该字段。
  • describe-parameters 是专门用于获取参数元数据的命令,默认返回结果包含Description,但可能你之前未正确查看返回结构,或存在权限限制导致字段未显示。

解决方案

要完整获取SSM参数的Name、Value和Description,需结合两个AWS CLI命令:先用describe-parameters获取元数据(含Description),再用get-parameter获取参数值。以下是可直接用于迁移的Shell脚本示例:

#!/bin/bash
# 配置源账号和目标账号信息
SOURCE_REGION="your-source-region"
DEST_REGION="your-dest-region"
DEST_AWS_PROFILE="target-account-profile" # 提前在~/.aws/credentials中配置目标账号的profile

# 遍历所有SSM参数(自动处理分页)
aws ssm describe-parameters --region $SOURCE_REGION --query 'Parameters[].{Name:Name, Description:Description, Type:Type}' --output json | jq -c '.[]' | while read param; do
    # 提取元数据字段
    param_name=$(echo "$param" | jq -r '.Name')
    param_desc=$(echo "$param" | jq -r '.Description')
    param_type=$(echo "$param" | jq -r '.Type')

    # 获取参数值(加密参数需添加--with-decrypt)
    param_value=$(aws ssm get-parameter --name "$param_name" --region $SOURCE_REGION --with-decrypt --query 'Parameter.Value' --output text)

    # 写入目标账号
    aws ssm put-parameter --name "$param_name" \
        --value "$param_value" \
        --type "$param_type" \
        --description "$param_desc" \
        --region $DEST_REGION \
        --profile $DEST_AWS_PROFILE \
        --overwrite # 若目标账号已存在同名参数,添加此参数覆盖
done

注意事项

  1. 权限配置:确保源账号的IAM用户/角色拥有ssm:DescribeParameters和ssm:GetParameter权限;目标账号拥有ssm:PutParameter权限。
  2. 加密参数处理:若参数为SecureString类型,需确保目标账号有权访问对应的KMS密钥,或在put-parameter命令中添加--key-id指定目标账号的KMS密钥ARN。
  3. 分页处理:AWS CLI的describe-parameters默认会自动处理分页,返回所有参数;若参数数量极大,可添加--page-size 1000提升效率。
  4. 特殊字符处理:若参数值包含特殊字符(如引号、换行),建议将param_value用双引号包裹,避免脚本执行出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:33:23