Я работаю над проектом ASP.NET Core, который будет развернут на AWS. Недавно клиент вернулся и попросил извлечь несколько значений из AWS SecretsManager. Я использую разрешения, унаследованные от роли IAM, связанной с экземпляром EC2, на котором развернут сервис.
В производственном использовании этот сервис будет размещаться самим клиентом на его собственной учетной записи AWS.
Когда я развертываю свою собственную тестовую учетную запись AWS, процесс работает просто отлично, но когда клиент развертывает свою учетную запись AWS, он получает 403 Запрещенный ответ на вызов, чтобы получить секретное значение. У них политика секретов и разрешений настроена, как и у меня, но все равно ошибка 403.
AmazonSecretsManagerClient client = new AmazonSecretsManagerClient();
var secretRequest = new GetSecretValueRequest
{
SecretId = "MySecretName"
};
// FAILS HERE
GetSecretValueResponse secretResponse = await client.GetSecretValueAsync(secretRequest);
Это исключение HttpRequestException с сообщением «Код состояния ответа не указывает на успех: 403 (Запрещено)».
Мой вопрос на самом деле не является проблемой кодирования, поскольку это работает на моей тестовой учетной записи AWS. Похоже, что это проблема среды с учетной записью клиента AWS.
Мой опыт работы с AWS очень ограничен, поэтому я понятия не имею, что может быть причиной этого.