用途:在执行 AWS CloudFormation 堆栈操作(创建、删除、更新)前,假定指定 IAM 角色获取临时凭证,并将凭证设置为 AWS CLI 可用的环境变量。
主要能力:通过 AWS STS 假定角色,保存凭证到临时文件,用 jq 解析并导出环境变量,最后清理临时文件。输出的环境变量包括 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN。设置后即可使用 AWS CLI 执行例如 aws cloudformation create-stack、update-stack、delete-stack 等命令。
输入参数:profile(AWS CLI 配置文件名,默认示例为 <profile-name>)、role_arn(要假定的 IAM 角色 ARN,默认示例为 arn:aws:iam::<AWS_ACCOUNT_ID>:role/<RoleName>)、role_session_name(会话名,默认 cfn-write)。
必要用法:需本地已安装 AWS CLI 与 jq,且指定 profile 已配置在 ~/.aws/credentials 或 ~/.aws/config 中,同时该源 profile 具备对目标角色的 sts:AssumeRole 权限。核心命令示例:aws sts assume-role --role-arn arn:aws:iam::<AWS_ACCOUNT_ID>:role/<RoleName> --role-session-name cfn-write --profile <profile-name> > /tmp/creds.json,随后用 jq 导出环境变量并删除临时文件。
限制:获得的凭证为临时凭证,通常约 1 小时后过期,过期后需重新执行该技能;出于安全考虑临时文件处理后会删除。适用场景为需要以特定角色权限运行 CloudFormation 操作的自动化或命令行流程。官方文档未提供更多细节。