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認証情報ファイルを使用する方法です。認証情報をソースコードやバージョン管理システムに含めないように注意してください。