【问题标题】:How to retrieve SecretsManager secret in AWS CDK如何在 AWS CDK 中检索 SecretsManager 密钥
【发布时间】:2020-12-16 10:04:11
【问题描述】:

我正在使用 CDK 在 AWS 中设置 Fargate 服务

const albFargateService = new ecs_patterns.ApplicationLoadBalancedFargateService(
    this,
    'FargateService',
    {
        vpc: ...,
        taskImageOptions: {
            image: ...,
            containerPort: ...,
            secrets: {
                MY_ENV_VAR: Secret.fromSecretsManager(
                    **ISecret**,
                    'fieldWithinTheSecret'
                ),
            }
        }
    }
)

在给定秘密名称的情况下,我应该如何获取 ISecret 实例?

我查看了 AWS 开发工具包中的 AWS.SecretsManager,但它只返回字符串。

【问题讨论】:

    标签: amazon-web-services aws-cdk aws-secrets-manager


    【解决方案1】:

    目前没有Secret.fromSecretName-方法。假设您使用的是现有密钥,则应使用Secret.fromSecretArn-方法。

    请注意,如果您使用 KMS 密钥,则应使用Secret.fromSecretAttributes-方法,如Get a value from AWS secrets manager 所述。

    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),
                }
            }
        }
    );
    
    

    【讨论】:

    • 注 1:Secret.fromSecretArnSecret.fromSecretsManager 来自不同的命名空间(@aws-cdk/aws-secretsmanager@aws-cdk/aws-ecs 分别)
    • 现在,aws-cdk 提供 Secret.fromSecretNameV2 以按名称导入密钥。
    猜你喜欢
    • 2022-09-22
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    相关资源
    最近更新 更多