Вход в CLI AWS с переменными среды, принимающими на себя определенную роль - PullRequest
1 голос
/ 18 октября 2019

Я ищу способ войти в AWS (и EKS), используя CLI, используя переменные среды, принимающие определенную роль.

Возможность взять на себя определенную роль важна, так как определенная мной рольпривязан к моему кластеру EKS, разрешая только разрешения в одном пространстве имен. Я уже могу войти в систему при определении AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY и AWS_DEFAULT_REGION.

. Я буду выполнять это в конвейере, поэтому необходимо использовать переменные окружения. Единственный способ заставить его работать в настоящее время - это установить переменные env для AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY и вставить их в файл ~/.aws/credentials и создать файл ~/.aws/config. Я также должен unset переменные или использовать разные имена переменных, поскольку CLI пытается использовать их, что не очень хорошо подходит для профиля.

Пример ниже:

export AWS_ACCESS_KEY_ID=*****REMOVED*****
export AWS_SECRET_ACCESS_KEY=*****REMOVED*****

mkdir ~/.aws

cat <<EOT >> ~/.aws/config
[test]
region = us-east-1

[profile test-profile]
region = us-west-1
role_arn = arn:aws:iam::111111111111:role/test-role
source_profile = test
EOT

cat <<EOT >> ~/.aws/credentials
[test]
aws_access_key_id = ${AWS_ACCESS_KEY_ID}
aws_secret_access_key = ${AWS_SECRET_ACCESS_KEY}
EOT

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

...