【问题标题】:Set Secret with Key in AWS Fargate Task from SecretsManager with CDK .NET使用 CDK .NET 在 SecretsManager 的 AWS Fargate 任务中设置密钥
【发布时间】:2022-09-22 21:50:50
【问题描述】:

我在 AWS 中生成了一个包含两个键/值对的密钥。我现在想在 CDK 中设置我的 Fargate 任务,并将这两个秘密作为环境变量。我已经阅读了文档并正在关注这两个文档:

Using Secrets Manager to secure sensitive dataGet a value from AWS Secrets Manager

我正在设置这样的秘密:

TaskImageOptions = new ApplicationLoadBalancedTaskImageOptions
{
    ContainerName = \"Container name\",
    Image = (...),
    Secrets = new Dictionary<string, Amazon.CDK.AWS.ECS.Secret>
    {
        {\"ENV_KEY_1\", Amazon.CDK.AWS.ECS.Secret.FromSecretsManagerVersion(Secret.FromSecretCompleteArn(this, \"secret-name-1\", \"full-arn-1\"))},
        {\"ENV_KEY_2\", Amazon.CDK.AWS.ECS.Secret.FromSecretsManagerVersion(Secret.FromSecretCompleteArn(this, \"secret-name-2\", \"full-arn-2\"))}
    }
}

根据文档(第二个链接),要在秘密上设置特定密钥,我应该使用如下内容:

{
  \"containerDefinitions\": [{
    \"secrets\": [{
      \"name\": \"environment_variable_name\",
      \"valueFrom\": \"arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:username1::\"
    }]
  }]
}

但是,那Secret.FromSecretCompleteArn不支持这个。它只需要最多 6 个随机字符的完整 arn,如果我添加密钥(或版本),它会失败。

我发现无法设置此密钥。我试过了:Secret.FromNameV2,Secret.FromSecretPartialArnSecret.FromAttributes.

    标签: .net amazon-web-services aws-cdk


    【解决方案1】:

    首先,FromSecretsManagerVersion 通过所需的VersionInfo 参数需要版本信息,而您没有提供该参数。如果您不需要它,请使用FromSecretsManager

    至于您的问题,上述两种方法都有一个 Field 参数,它完全符合您的要求 - 从 JSON 对象中选择一个字段。

    文档参考:https://constructs.dev/packages/aws-cdk-lib/v/2.43.0/api/Secret?lang=dotnet&submodule=aws_ecs#fromSecretsManager

    【讨论】:

      猜你喜欢
      • 2020-12-16
      • 2020-07-21
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多