[英]How to retrieve an arn of secret with random suffix in AWS Cloudformation
arn:aws:secretsmanager:<region>:<accountid>:secret:<mysecret>-d1fX1Y
“Secrets Manager 在 ARN 末尾的秘密名稱后自動添加一個連字符和六個隨機字符。”
arn 不是 static 它可能會改變。
據我所知,不可能使用.Ref,因為資源不是在同一個堆棧中創建的。
我試過使用 .Sub 和通配符,但結果是一樣的,因為它沒有進行查找。
也許有人對此有想法或解決方法?
這是模板的一部分。
Globals:
Function:
CodeUri: ./
Timeout: 60
Runtime: nodejs14.x
VpcConfig:
SecurityGroupIds: !Ref SecurityGroups
SubnetIds: !Ref Subnets
Environment:
Variables:
STAGE: !Sub "${Stage}"
VERSION: !Sub "${Version}"
SECRET_ARN: !Sub "arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:mysecret-*"
你想要完成的是跨 Stacks 引用一個 Arn? 例如,如果您在創建 Secret 的堆棧中導出 ARN,則另一個堆棧可以使用 Fn::ImportValue 引用該 ARN。
Fn::ImportValue - AWS CloudFormation
內部 function Fn::ImportValue 返回另一個堆棧導出的 output 的值。
您設置它以便秘密的 ARN 在 SSM 參數存儲中傳遞,然后使用參數存儲值作為您的 cloudformation 中的參數,然后您可以使用。Ref function 在您的 CF 模板中引用秘密值。
此值是其他資源(不是其他 cloudformation 堆棧)的 ARN 只是 terraform 創建的資源。
假設您將以 Secret 的 Arn 為值的 SSM 參數資源添加到創建 Secret 的.tf。 在這種情況下,CloudFormation 模板可以使用 SSM 動態引用來引用該參數。
看起來像這樣(未測試):
.tf
resource "aws_ssm_parameter" "example" {
name = "example"
type = "String"
value = aws_secretsmanager_secret.<your_secret_name>.arn
}
aws_ssm_參數 | 資源 | 哈希公司/aws | Terraform 登記處
模板
Globals:
Function:
CodeUri: ./
Timeout: 60
Runtime: nodejs14.x
VpcConfig:
SecurityGroupIds: !Ref SecurityGroups
SubnetIds: !Ref Subnets
Environment:
Variables:
STAGE: !Sub "${Stage}"
VERSION: !Sub "${Version}"
SECRET_ARN: !Sub "{{resolve:ssm:example}}"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.