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