terraformコマンドをWindowsクライアントで実行する場合、AWS認証は?

TerraformでAWSリソースを管理する場合、以下の方法でAWSへの認証を設定できます。Windowsクライアント上での操作を前提として説明します。

1. **環境変数を使用する**:
- AWSの認証情報を環境変数として設定します。

$env:AWS_ACCESS_KEY_ID="your_access_key_id"
$env:AWS_SECRET_ACCESS_KEY="your_secret_access_key"

- 必要に応じて、以下の追加の環境変数も設定できます。

$env:AWS_DEFAULT_REGION="us-west-1"
$env:AWS_SESSION_TOKEN="your_session_token"

2. **AWS認証情報ファイルを使用する**:
- ~/.aws/credentials ファイルに認証情報を保存します。このファイルは、通常、AWS CLIを使用して初めて aws configure コマンドを実行する際に作成されます。

[default]
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key

- 必要に応じて、~/.aws/config ファイルにデフォルトリージョン等を設定できます。

[default]
region = us-west-1

3. **Terraformのプロバイダ設定で直接指定する**:
- provider.tf や類似のTerraform設定ファイル内で、直接認証情報を指定します(セキュリティ上の理由から、この方法は推奨されません)。

provider "aws" {
access_key = "your_access_key_id"
secret_key = "your_secret_access_key"
region = "us-west-1"
}

4. **Assume Role**:
- AWSのIAM Roleをassumeするための設定を行い、一時的な認証情報を使用することもできます。これは、例えば、Terraformを使って複数のAWSアカウントを跨いでリソースを管理する際に役立ちます。

5. **Instance Profile (Amazon EC2でのみ)**:
- EC2インスタンスにIAMロールを関連付けることで、そのインスタンス上で実行されるTerraformは、関連付けられたロールの認証情報を自動的に使用できます。

最も安全な方法は、認証情報を明示的にTerraform設定に含めず、環境変数やAWS認証情報ファイルを使用する方法です。認証情報をソースコードやバージョン管理システムに含めないように注意してください。

記事タイトル検索