Какие учетные данные использует Boto3 при работе в AWS CodeBuild? - PullRequest
0 голосов
/ 18 мая 2018

Итак, я написал набор сценариев развертывания, которые выполняются в CodeBuild и используют Boto3 для развертывания некоторых закрепленных приложений в ECS.Проблема в том, что я хочу развернуть нашу отдельную производственную учетную запись.

Если я запускаю проект CodeBuild из учетной записи dev, но хочу создать ресурсы в рабочей учетной записи, я понимаю, что мне нужно настроить роль в целевой учетной записи, разрешить роли codebuild принять ее, затем вызовите:

sts_client.assume_role( RoleArn=arn_of_a_role_I_set_up, RoleSessionName=some_name )

Возвращает ключ доступа, секретный ключ и токен сеанса.Это работает и возвращает то, что я ожидал.

Тогда я хочу просто присвоить эти значения этим переменным среды: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN

Это потому, что согласно документации здесь:http://boto3.readthedocs.io/en/latest/guide/configuration.html Boto3 следует отложить, если вы не устанавливаете эти переменные явно в методах клиента или сеанса.

Однако, когда я делаю это, ресурсы все равно создаются в той же учетной записи разработчика.

Кроме того, если я вызову printenv в первой части моего buildspec.yml до того, как мои скрипты попытаются установить переменные окружения, эти переменные ключа / секрета / токена AWS вообще не будут присутствовать.

Итак, когда он запускается в CodeBuild, откуда Boto3 получает свои учетные данные?Будет ли решение просто передать ключ / секрет / токен каждому boto3.client() вызову, чтобы быть абсолютно уверенным?

1 Ответ

0 голосов
/ 24 мая 2018

Учетные данные в среде CodeBuild относятся к роли службы, связанной с вашим проектом CodeBuild.Boto и botocore будут автоматически использовать « ContainerProvider » для получения этих учетных данных в среде CodeBuild.

...