Роли службы Elastic Beanstalk не предоставлено разрешение из прилагаемой дополнительной политики

#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

Настройка IAM

Поскольку это отлично работает, когда я устанавливаю переменные среды в 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 полностью установлена по умолчанию и выглядит следующим образом

aws-elasticbeanstalk-ec2-роль

Заранее спасибо!

Ответ №1:

Оказывается, это были разрешения виртуальной машины. Я только что создал новую роль службы, скопировал политики из aws-elasticbeanstalk-ec2-role, добавил свою пользовательскую политику для secrets manager, а затем настроил профиль экземпляра виртуальной машины IAM на использование этой новой роли и вуаля!

Комментарии:

1. Похоже, что изменения разрешений роли не применяются немедленно к экземплярам EC2 в Elastic Beanstalk. При изменении роли экземпляра виртуальной машины все экземпляры EC2 перезапускаются, и это решает проблему.