Я хочу вызвать API-шлюз из нашего собственного бэкэнда, который является кластером ECS, и я хочу использовать авторизацию IAM. Есть ли способ не подписывать запрос вручную с помощью ключа доступа и секретного ключа?
Например, когда Lambda вызывает KMS для расшифровки переменных среды, нет необходимости настраивать AWS SDK. Интересно, есть ли что-то подобное для шлюза API.
Это определенно возможно, даже больше - это лучшая практика безопасности. Вы можете назначать роли IAM всем вычислительным сервисам AWS: Lambda, EC2, ECS, Beanstalk и т. д. В ECS вы можете назначать роли IAM своим задачам.
Это дает большое преимущество, которое хорошо описано в официальных документах:
Benefits of Using IAM Roles for Tasks
Credential Isolation: A container can only retrieve credentials for the IAM role that is defined in the task definition to which it belongs; a container never has access to credentials that are intended for another container that belongs to another task.
Authorization: Unauthorized containers cannot access IAM role credentials defined for other tasks.
Auditability: Access and event logging is available through CloudTrail to ensure retrospective auditing. Task credentials have a context of taskArn that is attached to the session, so CloudTrail logs show which task is using which role.
Вам поможет эта ссылка: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html