1

我正在开发一个将部署到 AWS 的 ASP.NET Core 项目。最近,客户回来并请求从 AWS SecretsManager 中提取一些值。我正在使用从关联到部署服务的 EC2 实例的 IAM 角色继承的权限。

在生产使用中,此服务将由客户自己托管在他们自己的 AWS 账户上。

当我部署到我自己的测试 AWS 账户时,该过程运行得很好,但是当客户端部署到他们自己的 AWS 账户时,他们在调用中收到 403 Forbidden 响应以获取密钥值。他们像我一样设置了秘密和权限策略,但仍然出现 403 错误。

AmazonSecretsManagerClient client = new AmazonSecretsManagerClient();
var secretRequest = new GetSecretValueRequest
{
    SecretId = "MySecretName"
};

// FAILS HERE
GetSecretValueResponse secretResponse = await client.GetSecretValueAsync(secretRequest);

这是一个 HttpRequestException,带有“响应状态代码不表示成功:403(禁止)”的消息。

我的问题并不是真正的编码问题,因为这确实适用于我的测试 AWS 账户。这似乎一定是客户的 AWS 账户的环境问题。

我在 AWS 方面的经验非常有限,所以我不知道是什么原因造成的。

4

1 回答 1

1

客户是否试图获取您在帐户中使用的完全相同的秘密?这将需要使用自定义 CMK 并添加资源策略来授予访问权限,如AWS 文档中所述。

于 2019-06-05T20:35:12.480 回答