AWSのアクセスキーを.aws/configに書く


AWSのアクセスキーは、 aws configure のウィザードで設定できます。

$ aws configure --profile example
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ap-northeast-1
Default output format [None]: json

すると、次の2つのファイルが作成されます。

$HOME/.aws/config
[profile example]
region = ap-northeast-1
output = json
$HOME/.aws/credentials
[example]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

実はAWS CLI用の設定としては、 config の方にまとめて記述することもできます[1]

$HOME/.aws/config
[profile example]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
region = ap-northeast-1
output = json

ただTerraformでは v1.1.7 の時点で、 config からの認証情報の読み取りには対応していないようです。

$ terraform plan
╷
│ Error: error configuring Terraform AWS Provider: failed to get shared config profile, example
│
│   with provider["registry.terraform.io/hashicorp/aws"],
│   on main.tf line 12, in provider "aws":12: provider "aws" {
│
╵
脚注
  1. 設定ファイルと認証情報ファイルの設定 - AWS Command Line Interface ↩︎