Closed2
[terraform]IAMロールをアタッチしたEC2上で実行する場合に認証情報を無効にする方法
IAMroleをアタッチしたEC2上でterraformを実行運用しているかた
いらっしゃらないですか。
実行する認証情報は
provider "aws" {
profile = "sso_profile_test"
alias = "sso_profile_test"
region = var.region
default_tags {
tags = {
Environment = var.env
Owner = var.owner
Terraform = "True"
}
}
}
module "iam_mfa_sso_profile_test" {
providers = {
aws = aws.sso_profile_test
}
source = "../../modules/iam_mfa"
env = var.env
project = var.project
}
と定義しており、
指定したprofileの認証でmoduleを実行するイメージになります。
ローカル(クライアント端末 MacOS)では正常に稼働するのですが、
IAMロールをアタッチ済のEC2上で実行しようとすると
IAMロールの認証情報が優先されるため、
権限がないエラーになってしまいます。
表題の通り、terraform実行時IAMロールの
認証情報を無効にする方法、
もしくはproviderの認証情報を最優先にする方法等
ご存知のかたがいらっしゃれば教示いただきたく。
原因としては
S3バックエンドにアクセスするための
プロファイル情報が抜け漏れてしまっていることでした。。
terraform {
required_version = ">= 1.0.10"
backend "s3" {
profile = "sso_profile_s3"
bucket = "sso_profile_test-terraform-state"
region = "ap-northeast-1"
key = "environments/mfa_iam/terraform.tfstate"
encrypt = true
}
}
sso_profile_s3の定義のみが
~/.aws/credensialsに定義されており、
その差異によってローカルでは成功
リモート先では失敗しておりました。
改めて/.aws/configに定義しなおしたところ
正常に通りました。
このスクラップは2021/11/29にクローズされました