我正在开发一个将部署到 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 方面的经验非常有限,所以我不知道是什么原因造成的。