我想在EC2上使用terraform并指定aws的配置文件
当在 EC2 上使用 terraform 时,即使指定了 –backend-config=”profile=プロファイル名”,实例上附加的 IAM 角色仍然会被优先考虑。
$ TF_LOG=DEBUG terraform init --backend-config="profile=terraform_profile"
# - 省略 -
[DEBUG] [aws-sdk-go] <GetCallerIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<GetCallerIdentityResult>
<Arn>arn:aws:sts::xxxxxxxxxx:assumed-role/ec2-sample-instance-role/i-0bb01f7be2c61dc01</Arn>
<UserId> …
可以使用var传递access_key等参数或使用.tfvars文件,但如果已经创建了profile,则可以使用AWS_PROFILE。
$ aws configure list --profile terraform_profile
Name Value Type Location
---- ----- ---- --------
profile terraform_profile manual --profile
access_key ****************UOJ5 shared-credentials-file
secret_key ****************eNBm shared-credentials-file
region ap-northeast-1 config-file ~/.aws/config
# これから作成する場合は--profileオプションで指定
$ aws configure --profile terraform_profile
AWS Access Key ID [None]: xxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]:
在运行 terraform init(验证版本号为 0.12)时。
$ AWS_PROFILE=terraform_profile terraform init
事情就是这样顺利进行了。