#amazon-web-services #amazon-iam
#amazon-web-services #amazon-iam
Вопрос:
Я использую AWS secrets manager и создал политику, разрешающую программный доступ к определенному набору секретов. Я создал нового пользователя и прикрепил эту и только эту политику к пользователю, и я могу отлично взаимодействовать с секретами.
Внутри Elastic Beanstalk я проверил это, вручную установив AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY в качестве переменных среды в Elastic Beanstalk. При запуске с помощью этого метода все работает отлично. Я не хочу предоставлять секретный ключ доступа любому разработчику, имеющему доступ к консоли, поэтому вместо этого я хочу прикрепить эту политику к роли службы Elastic Beanstalk
Итак, я создал новую роль службы elastic beanstalk для своего приложения, прикрепил ту же политику, а затем настроил EB на использование этой новой роли службы, согласно приведенным ниже деталям.
Поскольку это отлично работает, когда я устанавливаю переменные среды в EB для ключей aws, но не работает, когда я подключаюсь к роли службы, я должен предположить, что это не связано с моей политикой, но на всякий случай вот полная информация о политике.
Я не уверен, чего мне может не хватать? Связано ли это с разрешениями виртуальной машины? Или я каким-то образом неправильно настроил свою политику?
Сведения о роли службы содержат две управляемые политики из AWSElasticBeanstalkEnhancedHealth и AWSElasticBeanstalkService, а также мою пользовательскую роль для предварительного доступа
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetResourcePolicy",
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret",
"secretsmanager:ListSecretVersionIds"
],
"Resource": [
"arn:aws:secretsmanager:us-east-1:123456789:secret:ASDFG",
"arn:aws:secretsmanager:us-east-1:123456789:secret:QWERT"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"secretsmanager:GetRandomPassword",
"secretsmanager:ListSecrets"
],
"Resource": "*"
}
]
}
Роль aws-elasticbeanstalk-ec2 полностью установлена по умолчанию и выглядит следующим образом
Заранее спасибо!
Ответ №1:
Оказывается, это были разрешения виртуальной машины. Я только что создал новую роль службы, скопировал политики из aws-elasticbeanstalk-ec2-role, добавил свою пользовательскую политику для secrets manager, а затем настроил профиль экземпляра виртуальной машины IAM на использование этой новой роли и вуаля!
Комментарии:
1. Похоже, что изменения разрешений роли не применяются немедленно к экземплярам EC2 в Elastic Beanstalk. При изменении роли экземпляра виртуальной машины все экземпляры EC2 перезапускаются, и это решает проблему.