9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】AWS loginを使ってTerraformを実行するテクニック

Posted at

Aws loginでTerraformへの開発者アクセスをシンプルに

Terraform実行環境をPCローカルにセットアップするの意外と手間かかりますよね?
またアクセスキーやシークレットキーを払い出して、管理するのも大変💦
そこで最近登場した、AWS loginを使ってキーレスでTerraform実行環境を構築するテクニックをしご紹介します。

AWS loginを利用する際、[default]プロファイルを利用することになるため、プロファイル切替ができるのか、検証でき次第アップデートしていきます。

AWS login

AWS loginとは

AWS への開発者アクセスをシンプルにするログイン方法。
長期アクセスキーを作成・管理することなく、AWSにサインアップした直後からすぐに構築可能。

1.WindowsPC上のPowershellを起動させ、[aws login]を実行

image.png

2.自動的にブラウザ画面が起動するため、[ルートまたはIAMユーザで続行]を選択

image.png

3.ログインしたいAWS環境の情報を入力

image.png

4.Sing in完了のブラウザ画面が表示

image.png

5.Powershell画面に戻ると[Updated profile default to use ~]と表示

image.png

AWS loginでTerraformを使うプチ設定

・AWS loginで利用したIAMユーザにポリシーをアタッチ

AWS loginでログインしたAWS環境のマネージメントコンソールからログインで利用したIAMユーザを選択し、「SignInLocalDevelopmentAccess」ポリシーをアタッチ。

image.png

・ ~/.aws/config追加

configとは

AWSの操作に関する設定(どのリージョンを使うか、出力形式など)を保存しておくためのファイル。

~/.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の内容削除

credentialとは

AWSの認証情報を保存するファイル。
アクセスキーIDとシークレットアクセスキーを保管し、「誰が」AWSを操作するのかを証明する絶対に外部に漏らしてはいけない重要なファイル。

~/.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.tfとは

Terraformがどのクラウド(AWSなど)に、どのリージョンや認証情報で接続するかを設定するためのファイル

provider "aws" {
    region = "ap-northeast-1"
}

・ terraform.tf 準備

terraform.tfとは

Terraform自体の動作(必要なプロバイダーのバージョン指定など)を設定するためのファイル

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]を実行し、実行結果が出力

image.png


注意事項

本ブログに掲載している内容は、私個人の見解であり、所属する組織の立場や戦略、意見を代表するものではありません。あくまでエンジニアとしての経験や考えを発信していますので、ご了承ください。

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?