首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AWS中检索SecretsManager秘密

如何在AWS中检索SecretsManager秘密
EN

Stack Overflow用户
提问于 2020-08-27 13:44:48
回答 2查看 9.9K关注 0票数 6

我正在使用CDK在AWS中建立一个Fargate服务

代码语言:javascript
复制
const albFargateService = new ecs_patterns.ApplicationLoadBalancedFargateService(
    this,
    'FargateService',
    {
        vpc: ...,
        taskImageOptions: {
            image: ...,
            containerPort: ...,
            secrets: {
                MY_ENV_VAR: Secret.fromSecretsManager(
                    **ISecret**,
                    'fieldWithinTheSecret'
                ),
            }
        }
    }
)

考虑到秘密的名称,我应该如何获得ISecret实例?

我看过AWS中的AWS.SecretsManager,但它只返回字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-27 18:11:19

目前还没有Secret.fromSecretName-method。假设您使用的是现有的秘密,则应该使用Secret.fromSecretArn-method。

注意,如果使用KMS键,则应该使用Secret.fromSecretAttributes-method,如从AWS机密管理器中获取值中所述。

代码语言:javascript
复制
import * as ecs from "@aws-cdk/aws-ecs";
import * as ecs_patterns from "@aws-cdk/aws-ecs-patterns";
import * as secretsmanager from "@aws-cdk/aws-secretsmanager";

const mySecret = secretsmanager.Secret.fromSecretArn(this, "mySecret", "arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name>-<random-6-characters>");

const albFargateService = new ecs_patterns.ApplicationLoadBalancedFargateService(
    this,
    'FargateService',
    {
        vpc: ...,
        taskImageOptions: {
            image: ...,
            containerPort: ...,
            secrets: {
                MY_ENV_VAR: ecs.Secret.fromSecretsManager(mySecret),
            }
        }
    }
);
票数 7
EN

Stack Overflow用户

发布于 2022-05-06 06:31:55

使用CDK 2更新的密钥,您可以使用Secret.fromSecretNameV2()引用一个秘密,并使用Secret.secretValueFromJson('keyname').toString();检索一个特定的秘密值--参见下面的代码片段

代码语言:javascript
复制
const appSecret = Secret.fromSecretNameV2(this,'app-secret',"secret-name");
const value1 = appSecret.secretValueFromJson('KeyName1').toString();
const value2 = appSecret.secretValueFromJson('KeyName2').toString();

最好的做法是,您可以在任何地方使用这个秘密值,比如科涅托秘密,它不会硬编码云形成堆栈中的秘密值。相反,它将使用令牌,并在部署时将其解析为值。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63617381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档