Вы можете использовать источник учетных данных "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