Я хотел бы использовать AWS Предполагаемые роли с Terraform Cloud / Enterprise
В Terraform Open Source вы обычно просто делаете Assume Role, используя .aws / Профиль учетных данных в CLI, который является начальной аутентификацией и выполняет роль предположения:
provider "aws" {
assume_role {
role_arn = "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME"
session_name = "SESSION_NAME"
external_id = "EXTERNAL_ID"
}
}
Проблема заключается в том, что при использовании Terraform Enterprise или Cloud вы не можете ссылаться на профиль как на неизменную инфраструктуру не будет иметь этот файл в своем каталоге.
Terraform Cloud / Enterprise должен иметь идентификатор ключа доступа и секретный ключ доступа, заданные в качестве переменной, чтобы его инфраструктура могла выполнять запуск Terraform через его конвейер и аутентифицируйтесь на какой-либо AWS учетной записи, которую вы хотели бы предоставить в.
Таким образом, вопрос : Как я могу выполнить роль AWS Assume, используя Access Идентификатор ключа и секретный ключ доступа для учетной записи AWS с «действием»: «sts: AssumeRole», Policy?
Я думаю, что ниже будет работать, однако Terraform выполняет первоначальную аутентификацию с помощью AWS учетных данных профиля учетных записей, для учетной записи, которая имеет политику sts: AssumeRole
Может ли Terraform взглянуть на access_key и secret_key, чтобы определить, что AWS учетную запись, которую следует использовать при попытке взять на себя роль, а не использовать AWS Профиль учетных данных?
provider "aws" {
region = var.aws_region
access_key = var.access_key_id
secret_key = var.secret_access_key
assume_role {
role_arn = "arn:aws:iam::566264069176:role/RemoteAdmin"
#role_arn = "arn:aws:iam::<awsaccount>:role/<rolename>" # Do a replace in "file_update_automation.ps1"
session_name = "RemoteAdminRole"
}
}
Для того, чтобы Terraform Cloud / Enterprise мог получить новые жетоны предположений о роли, ему нужно будет использовать Access_key и Secret_key, чтобы сообщить ему, что у AWS учетной записи есть роль sts: предположить, ссылка на участника AWS учетной записи, которую нужно подготовить, а не AWS Creds Profile
Спасибо