Передайте AWS роль IAM CodeBuild в Docker контейнере [невозможно найти учетные данные] - PullRequest
0 голосов
/ 05 февраля 2020

Роль, сконфигурированная в проекте CodeBuild, прекрасно работает со средой выполнения, но не работает, когда мы запускаем команду из контейнера, она говорит: «невозможно найти учетные данные».
Дайте мне знать, как мы можем использовать Роль из коробки внутри контейнера.

1 Ответ

1 голос
/ 06 февраля 2020

Вы можете использовать источник учетных данных "EcsContainer", чтобы беспрепятственно выполнять роль, не экспортируя новые учетные данные в свой билдспе c .yml.

credential_source - поставщик учетных данных, используемый для получения учетные данные для начального вызова предположительной роли. Этот параметр не может быть предоставлен вместе с source_profile. Допустимые значения:

  • Среда для извлечения учетных данных источника из переменных среды.
  • Ec2InstanceMetadata для использования роли экземпляра EC2 в качестве учетных данных источника.
  • EcsContainer для использования ECS учетные данные контейнера в качестве исходных учетных данных.

От: https://docs.aws.amazon.com/cli/latest/topic/config-vars.html

Шаги:

Шаг 0: Создайте новую роль 'arn: aws: iam :: 0000000000: role / RoleToBeAssumed' и присоедините необходимые политики, чтобы предоставить разрешения, необходимые для команд, которые вы выполняете во время сборки.

Шаг -1: добавьте права sts: acceptRole к своей роли службы CodeBuild. Вот пример политики:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "sts:*",
            "Resource": "arn:aws:iam::0000000000:role/RoleToBeAssumed"
        }
    ]
}

Шаг 2: Настройте контейнер сборки на использование метаданных учетных данных в качестве источника для принятия роли. Вот пример buildspe c:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 8
    commands:
      - aws sts get-caller-identity
      - mkdir ~/.aws/ && touch ~/.aws/config
      - echo "[profile buildprofile]" > ~/.aws/config
      - echo "role_arn = arn:aws:iam::0000000000:role/RoleToBeAssumed" >> ~/.aws/config
      - echo "credential_source = EcsContainer" >> ~/.aws/config
      - aws sts get-caller-identity --profile buildprofile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...