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