Aws loginでTerraformへの開発者アクセスをシンプルに
Terraform実行環境をPCローカルにセットアップするの意外と手間かかりますよね?
またアクセスキーやシークレットキーを払い出して、管理するのも大変💦
そこで最近登場した、AWS loginを使ってキーレスでTerraform実行環境を構築するテクニックをしご紹介します。
AWS loginを利用する際、[default]プロファイルを利用することになるため、プロファイル切替ができるのか、検証でき次第アップデートしていきます。
AWS login
1.WindowsPC上のPowershellを起動させ、[aws login]を実行
2.自動的にブラウザ画面が起動するため、[ルートまたはIAMユーザで続行]を選択
3.ログインしたいAWS環境の情報を入力
4.Sing in完了のブラウザ画面が表示
5.Powershell画面に戻ると[Updated profile default to use ~]と表示
AWS loginでTerraformを使うプチ設定
・AWS loginで利用したIAMユーザにポリシーをアタッチ
AWS loginでログインしたAWS環境のマネージメントコンソールからログインで利用したIAMユーザを選択し、「SignInLocalDevelopmentAccess」ポリシーをアタッチ。
・ ~/.aws/config追加
~/.aws/configファイルの[default]ブロックに「credential_process = aws configure export-credentials」を追加
[default]
region = ap-northeast-1
output = json
credential_process = aws configure export-credentials 👈1行追加
・ ~/.aws/credentialの内容削除
~/.aws/credentialファイルの[default]ブロックをすべて削除
<Before>
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
<After>
AWS loginでTerraform実行
・ provider.tf 準備
provider "aws" {
region = "ap-northeast-1"
}
・ terraform.tf 準備
terraform {
required_version = ">= 1.4"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.16"
}
}
}
resource "aws_vpc" "name" {
cidr_block = "10.0.0.0/16"
}
👆検証のためterraform.tfに書いたがmain.tfなどに書くことが一般的
data "aws_caller_identity" "name" {
}
・ terraform plan 実行
Powershell上で[terraform plan]を実行し、実行結果が出力






