如何在我的 .NET 应用程序中使用 AWS Secret Manager 和 SES AND IAM 角色/用户

问题描述 投票:0回答:1

这是一个基本的发送电子邮件应用程序。 设置 IAM 用户角色和 Secret Manager(使用 SDK 中的密钥)是最困难的部分。 我需要能够通过本地开发和 AWS 管道/容器环境来做到这一点。 试图找出最佳实践是什么以及它会是什么样子。

我设置了凭据文件来访问 AccessKeyId 和 SecretKey。这些是文档不鼓励的长期凭证。

我在应用程序设置中添加了按键。也被文档劝阻。

我从 SDK 实现了 SecretManager,但我需要创建 IAM 角色。我无法直接执行此操作,因此我要求保安执行此操作。我应该很快就会得到这个角色。

我的问题是,Secret Manager 是实现此目的的方法吗?IAM 角色将如何发挥作用?还是我想多了?

.net amazon-ec2 amazon-ses aws-secrets-manager aws-pipeline
1个回答
0
投票

我需要能够通过本地开发和 AWS 管道/容器环境来做到这一点。

对于本地开发,定义

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
env-vars(或在 ~/.aws/credentials 中具有等效项)文件就可以了。

Secret Manager 是实现此目的的方法吗?IAM 角色将如何发挥作用?

是的。对于您的“管道/容器”环境(假设这是一个 EC2 实例),最好通过 IAM 角色(而不是通过在应用程序代码中指定 AccessKeyId 和 SecretKeyId)访问 Secrets Manager。您只需在创建密钥时在资源权限部分添加 IAM 角色和账户 ID:

{
  "Version" : "2012-10-17",
  "Statement" : [ {
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "arn:aws:iam::<Account-ID>:role/<IAM Role>"
    },
    "Action" : [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ],
    "Resource" : "*"
  } ]
}

如果部署您的应用程序的 EC2 实例附加了此 IAM 角色,您的应用程序将能够访问 Secrets Manager。

请参阅 Secrets Manager 官方文档

© www.soinside.com 2019 - 2024. All rights reserved.