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

如何用AWS CLI判断Secrets Manager密钥是否存在并配合CFT创建

检查AWS Secrets Manager密钥是否存在的AWS CLI方案

你可以用aws secretsmanager describe-secret命令来检查指定名称的密钥是否存在:该命令在密钥存在时会返回元数据,不存在时会抛出错误,结合bash的命令返回码就能判断状态,进而生成你需要的标记参数。

核心CLI命令示例

假设要检查的密钥名称是DatabaseCredentials(与你CFT中的资源名对应),执行以下命令:

aws secretsmanager describe-secret --secret-id DatabaseCredentials
  • 密钥存在:命令返回码为0(执行成功),同时输出密钥的JSON格式元数据
  • 密钥不存在:命令返回非0值,同时输出ResourceNotFoundException类的错误提示

封装成bash脚本

将检查逻辑封装成脚本,直接输出true/false,方便传给CloudFormation参数:

#!/bin/bash

# 替换为你要检查的密钥ID或名称
SECRET_NAME="DatabaseCredentials"

# 执行检查命令,屏蔽输出避免干扰
aws secretsmanager describe-secret --secret-id "$SECRET_NAME" > /dev/null 2>&1

if [ $? -eq 0 ]; then
  # 密钥已存在,返回true
  echo "true"
else
  # 密钥不存在,返回false
  echo "false"
fi

结合CloudFormation部署使用

先运行脚本获取状态标记,再传递给CFT部署命令:

# 获取密钥存在状态标记
EXISTS_FLAG=$(bash check-secret-exists.sh)

# 部署CloudFormation模板,传入控制参数
aws cloudformation deploy \
  --template-file your-template.yml \
  --stack-name your-target-stack \
  --parameter-overrides isResourceAlreadyExistsFlag=$EXISTS_FLAG

这样就能让你的CFT根据密钥的实际存在状态,控制是否创建新的Secrets Manager密钥资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:37:03