📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

AWS CLIの設定ファイル (config) は、AWS CLIの動作を制御するための設定を保存するファイルである。
デフォルトの保存場所は、~/.aws/config である。

主な特徴を以下に示す。

  • プロファイルベースの設定
    複数の設定を切り替えて使用可能
  • 認証情報の管理
    アクセスキー、ロール、SSO等の設定
  • リージョンと出力形式
    デフォルトのリージョンと出力形式を指定
  • サービス固有設定
    S3、DynamoDB等のサービス固有の設定
  • エンドポイント設定
    カスタムエンドポイントやFIPS、デュアルスタック等


設定ファイルの優先順位を以下に示す。

  1. コマンドラインオプション
    最も優先度が高い
  2. 環境変数
    AWS_REGIONAWS_PROFILE
  3. 設定ファイル
    ~/.aws/config および ~/.aws/credentials


設定ファイルはプレーンテキストファイルであり、INI形式で記述する。


ファイルの場所と形式

ファイルの場所

設定ファイルのデフォルトの場所を以下に示す。

  • Linux / MacOS
    ~/.aws/config
    ~/.aws/credentials
  • Windows
    C:\Users\USERNAME\.aws\config
    C:\Users\USERNAME\.aws\credentials


環境変数でファイルの場所を変更できる。

  • AWS_CONFIG_FILE
    configファイルの場所を指定
  • AWS_SHARED_CREDENTIALS_FILE
    credentialsファイルの場所を指定


ファイルの形式

設定ファイルはINI形式で記述する。

基本的な構造を以下に示す。

 # コメント行
 [default]
 region = ap-northeast-1
 output = json
 
 [profile production]
 region = us-west-2
 output = yaml
 role_arn = arn:aws:iam::123456789012:role/ProdRole
 source_profile = default


形式のルールは以下の通りである。

  • セクション名は角括弧 [] で囲む。
  • 設定項目は key = value の形式
  • コメント行は # で始める。
  • ネストされた設定はインデントで表現する。


プロファイル名の規則

  • デフォルトプロファイル
    configファイル : [default]
    credentialsファイル : [default]
  • 名前付きプロファイル
    configファイル : [profile name]
    credentialsファイル : [name]


※注意
credentialsファイルでは、profile プレフィックスを付けない。


セクションの種類

AWS CLI configファイルには5種類のセクションが存在する。

[default] セクション

プロファイルを指定しない場合に使用されるデフォルト設定である。

 [default]
 region = ap-northeast-1
 output = json
 cli_pager =


[profile <プロファイル名>] セクション

名前付きプロファイルの設定である。
複数の環境や用途に応じて設定を切り替えることができる。

 [profile development]
 region = us-west-2
 output = yaml
 role_arn = arn:aws:iam::123456789012:role/DevRole
 source_profile = default


  • プロファイルの使用方法
 # コマンドラインで指定
 aws s3 ls --profile development
 
 # 環境変数で指定
 export AWS_PROFILE=development
 aws s3 ls


[sso-session <セッション名>] セクション

IAM Identity Center (旧AWS SSO) のセッション設定である。
複数のプロファイルでSSOセッションを共有できる。

 [sso-session my-sso]
 sso_region = us-east-1
 sso_start_url = https://my-sso-portal.awsapps.com/start
 sso_registration_scopes = sso:account:access


  • プロファイルからの参照
 [profile dev]
 sso_session = my-sso
 sso_account_id = 111122223333
 sso_role_name = ReadOnly
 region = us-west-2


[services <サービス設定名>] セクション

サービス固有のエンドポイント設定である。
特定のサービスに対してカスタムエンドポイントを設定できる。

 [profile dev]
 services = my-services
 
 [services my-services]
 dynamodb = 
     endpoint_url = http://localhost:8000
 s3 = 
     endpoint_url = http://localhost:4566


  • サービス識別子の形式
  • APIモデルの serviceId を基に生成
  • スペースをアンダースコアに変換
  • 全て小文字に変換
    例1 : "Amazon S3" → "s3"
    例2 : "Amazon DynamoDB" → "dynamodb"


[plugins] セクション

AWS CLI v2のプラグイン設定である。

※注意
AWS CLI v2のプラグインサポートは暫定的である。
将来のバージョンで互換性が保証されない。

 [plugins]
 cli_legacy_plugin_path = /usr/local/lib/python3.8/site-packages
 my_custom_plugin = custom_plugin_module



基本設定項目

[default] および [profile] セクションで使用できる基本的な設定項目を示す。

リージョンと出力形式

設定項目 説明 デフォルト
region デフォルトのAWSリージョン なし region = ap-northeast-1
output 出力形式 json output = json


認証情報

設定項目 説明
aws_access_key_id AWSアクセスキーID aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key AWSシークレットアクセスキー aws_secret_access_key = wJalrXUtn...
aws_session_token セッショントークン aws_session_token = IQoJb3JpZ2...
credential_process 外部プロセスから認証情報を取得 credential_process = /opt/bin/awscreds
credential_source 認証情報のソース credential_source = Ec2InstanceMetadata


※推奨
アクセスキーとシークレットキーは ~/.aws/credentials ファイルに保存することを推奨する。

IAMロール関連

設定項目 説明
role_arn 引き受けるロールのARN role_arn = arn:aws:iam::123456789012:role/MyRole
source_profile ソースプロファイル source_profile = default
role_session_name ロールセッション名 role_session_name = session_user1
duration_seconds セッション期間 (秒) duration_seconds = 3600
external_id 外部ID external_id = unique-id
mfa_serial MFAデバイスのARN mfa_serial = arn:aws:iam::123456789012:mfa/user


SSO (IAM Identity Center) 関連

設定項目 説明
sso_session SSOセッション名 sso_session = my-sso
sso_account_id SSOアカウントID sso_account_id = 123456789012
sso_role_name SSOロール名 sso_role_name = ReadOnly
sso_start_url SSOポータルURL (レガシー) sso_start_url = https://portal.awsapps.com/start
sso_region SSOリージョン (レガシー) sso_region = us-east-1


※推奨
新規設定では sso-session セクションを使用する方法を推奨する。


エンドポイント設定

カスタムエンドポイント、FIPS、デュアルスタックエンドポイントの設定を行う。

エンドポイント関連

設定項目 説明
endpoint_url グローバルエンドポイントURL endpoint_url = http://localhost:4566
services サービス固有設定のセクション名 services = my-services
ignore_configure_endpoint_urls エンドポイント設定を無視 ignore_configure_endpoint_urls = true
use_dualstack_endpoint デュアルスタックエンドポイント使用 use_dualstack_endpoint = true
use_fips_endpoint FIPSエンドポイント使用 use_fips_endpoint = true
account_id_endpoint_mode アカウントベースエンドポイントモード account_id_endpoint_mode = preferred
aws_account_id AWSアカウントID aws_account_id = 123456789012


エンドポイント設定の優先順位

エンドポイント設定は複数の場所で指定できるが、以下に示す優先順位で適用される。

  1. コマンドラインオプション
    --endpoint-url
  2. 環境変数
    AWS_ENDPOINT_URL
  3. サービス固有のエンドポイント設定
    services セクション
  4. グローバルエンドポイント設定
    endpoint_url


LocalStack等のローカル開発環境

ローカル開発環境での使用例を以下に示す。

 [profile localstack]
 region = us-east-1
 endpoint_url = http://localhost:4566
 services = local-services
 
 [services local-services]
 dynamodb = 
     endpoint_url = http://localhost:8000
 s3 = 
     endpoint_url = http://localhost:4566
 sqs = 
     endpoint_url = http://localhost:9324


  • 使用方法
     aws s3 ls --profile localstack
     aws dynamodb list-tables --profile localstack
    



リトライとパフォーマンス設定

リトライ設定

設定項目 説明 デフォルト
max_attempts 最大リトライ回数 3 max_attempts = 5
retry_mode リトライモード standard retry_mode = adaptive


リトライモードの種類を以下に示す。

  • standard
    標準のリトライルール
    AWS SDK全体で統一されたルール
  • legacy
    AWS CLI v1互換のレガシーモード
  • adaptive
    実験的なアダプティブモード
    自動的にクライアント側でスロットリングを調整


 [profile production]
 max_attempts = 10
 retry_mode = adaptive


タイムアウト設定

設定項目 説明 デフォルト
metadata_service_timeout EC2メタデータタイムアウト 1秒 metadata_service_timeout = 5
metadata_service_num_attempts EC2メタデータリトライ回数 1回 metadata_service_num_attempts = 3


接続設定

設定項目 説明
tcp_keepalive TCP Keep-Alive使用 tcp_keepalive = true
ca_bundle CAバンドルファイルパス ca_bundle = /path/to/ca-bundle.pem



出力と表示設定

出力形式

設定項目 説明
cli_pager ページャプログラム cli_pager = less
cli_timestamp_format タイムスタンプ形式 cli_timestamp_format = iso8601
cli_binary_format バイナリ形式 cli_binary_format = base64
cli_auto_prompt 自動プロンプト cli_auto_prompt = on
cli_help_output ヘルプ出力形式 cli_help_output = browser


ページャの無効化

AWS CLI v2はデフォルトでページャ (lessコマンド、あるいは、moreコマンド) を使用する。
無効化するには空文字列を設定する。

 [default]
 cli_pager =


または環境変数で設定する。

 export AWS_PAGER=""


タイムスタンプ形式

  • iso8601 (推奨)
    iso8601
    ISO 8601形式で表示
    例 : 2024-05-08T15:16:43Z
  • wire
    HTTPレスポンスの形式のまま表示


 [default]
 cli_timestamp_format = iso8601



検証とセキュリティ設定

パラメータ検証

設定項目 説明 デフォルト
parameter_validation パラメータ検証の実行 true parameter_validation = false


パラメータ検証を無効化するとパフォーマンスが向上する可能性がある。
ただし、無効化は推奨されない。

チェックサム設定

設定項目 説明 デフォルト
request_checksum_calculation リクエストチェックサム計算 when_supported request_checksum_calculation = when_required
response_checksum_validation レスポンスチェックサム検証 when_supported response_checksum_validation = when_required


有効な値

  • when_supported
    サポートされている場合に計算/検証
  • when_required
    必要な場合のみ計算/検証


署名設定

設定項目 説明
sigv4a_signing_region_set SigV4a署名リージョンセット sigv4a_signing_region_set = us-west-2, us-east-1



S3固有の設定

S3コマンド用の設定は、s3 キー配下にネストして記述する。

基本設定

 [profile s3-optimized]
 s3 =
     max_concurrent_requests = 20
     max_queue_size = 10000
     multipart_threshold = 64MB
     multipart_chunksize = 16MB
     max_bandwidth = 50MB/s


転送設定

設定項目 説明 デフォルト
max_concurrent_requests 最大同時リクエスト数 10 max_concurrent_requests = 20
max_queue_size タスクキュー最大サイズ 1000 max_queue_size = 10000
multipart_threshold マルチパート閾値 8MB multipart_threshold = 64MB
multipart_chunksize チャンクサイズ 8MB multipart_chunksize = 16MB
max_bandwidth 最大帯域幅 無制限 max_bandwidth = 50MB/s


エンドポイント設定

設定項目 説明 デフォルト
addressing_style アドレス指定スタイル auto addressing_style = path
use_accelerate_endpoint Transfer Acceleration使用 false use_accelerate_endpoint = true
payload_signing_enabled ペイロード署名 false payload_signing_enabled = true


アドレス指定スタイルの種類


転送クライアント

設定項目 説明 デフォルト
preferred_transfer_client 転送クライアント auto preferred_transfer_client = crt


転送クライアントの種類

  • auto
    自動選択
    条件が揃えば crt を使用
  • classic
    Python組み込みクライアント
    全ての機能をサポート
  • crt
    AWS Common Runtime (CRT) クライアント
    高速だが一部機能制限あり



その他の設定項目

コマンド履歴

設定項目 説明 デフォルト
cli_history コマンド履歴の記録 disabled cli_history = enabled


コマンド履歴を有効化する時、aws history コマンドで過去のコマンドを確認できる。

 # 履歴一覧
 aws history list
 
 # 詳細表示
 aws history show <command_id>


APIバージョン指定

設定項目 説明
api_versions サービス固有のAPIバージョン 下記参照


 [profile specific-versions]
 api_versions =
     ec2 = 2015-03-01
     cloudfront = 2015-09-17


アプリケーションID

設定項目 説明
sdk_ua_app_id アプリケーション識別子 sdk_ua_app_id = myapp


アプリケーションIDは運用通知等でアプリケーションを識別するために使用される。
最大50文字まで指定可能である。


設定ファイルの例

基本的な設定例

 # デフォルトプロファイル
 [default]
 region = ap-northeast-1
 output = json
 cli_pager = 
 
 # 開発環境
 [profile development]
 region = us-west-2
 output = yaml
 role_arn = arn:aws:iam::123456789012:role/DevRole
 source_profile = default
 max_attempts = 5
 retry_mode = adaptive


SSO設定の例

 # SSO設定 (推奨方式)
 [profile sso-dev]
 sso_session = my-sso
 sso_account_id = 111122223333
 sso_role_name = PowerUser
 region = us-west-2
 output = json
 
 [profile sso-prod]
 sso_session = my-sso
 sso_account_id = 444455556666
 sso_role_name = ReadOnly
 region = us-east-1
 output = json
 
 [sso-session my-sso]
 sso_region = us-east-1
 sso_start_url = https://my-sso-portal.awsapps.com/start
 sso_registration_scopes = sso:account:access


ローカル開発環境の例

 # LocalStack用設定
 [profile localstack]
 region = us-east-1
 endpoint_url = http://localhost:4566
 services = local-services
 
 [services local-services]
 dynamodb = 
     endpoint_url = http://localhost:8000
 s3 = 
     endpoint_url = http://localhost:4566
 sqs = 
     endpoint_url = http://localhost:9324
 lambda = 
     endpoint_url = http://localhost:3001


複数環境の設定例

 # 開発環境
 [profile dev]
 region = ap-northeast-1
 output = json
 role_arn = arn:aws:iam::111111111111:role/DevRole
 source_profile = default
 
 # ステージング環境
 [profile staging]
 region = ap-northeast-1
 output = json
 role_arn = arn:aws:iam::222222222222:role/StagingRole
 source_profile = default
 duration_seconds = 3600
 
 # 本番環境
 [profile prod]
 region = us-east-1
 output = json
 role_arn = arn:aws:iam::333333333333:role/ProdRole
 source_profile = default
 mfa_serial = arn:aws:iam::123456789012:mfa/username
 duration_seconds = 7200


S3最適化設定の例

 [profile s3-heavy]
 region = ap-northeast-1
 s3 =
     max_concurrent_requests = 50
     max_queue_size = 10000
     multipart_threshold = 128MB
     multipart_chunksize = 32MB
     max_bandwidth = 100MB/s
     preferred_transfer_client = crt
     use_accelerate_endpoint = true



設定コマンド

初期設定

対話形式で基本設定を行う。

 aws configure


  • 入力が求められる項目
    • AWS Access Key ID
      アクセスキーID
    • AWS Secret Access Key
      シークレットアクセスキー
    • Default region name
      デフォルトリージョン (例 : ap-northeast-1)
    • Default output format
      出力形式 (json、yaml、text、table)


  • プロファイルを指定して設定する場合
     aws configure --profile production
    


個別設定の変更

特定の設定項目のみを変更する。

 # リージョンの設定
 aws configure set region ap-northeast-1
 
 # プロファイルを指定して設定
 aws configure set region us-west-2 --profile production
 
 # 出力形式の設定
 aws configure set output yaml
 
 # ロールARNの設定
 aws configure set role_arn arn:aws:iam::123456789012:role/MyRole --profile prod


設定の確認

現在の設定を確認する。

 # 設定一覧の表示
 aws configure list
 
 # プロファイルを指定して表示
 aws configure list --profile production
 
 # 特定の設定値を取得
 aws configure get region
 aws configure get region --profile production


# 出力例

      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************ABCD shared-credentials-file    
secret_key     ****************ABCD shared-credentials-file    
    region           ap-northeast-1      config-file    ~/.aws/config


プロファイル一覧

設定されているプロファイルの一覧を表示する。

 aws configure list-profiles


# 出力例

default
development
production
localstack


SSO設定

IAM Identity Center (SSO) の設定を対話形式で行う。

 # SSO設定
 aws configure sso
 
 # SSOセッション設定
 aws configure sso-session


認証情報のエクスポート

現在の認証情報を他の形式でエクスポートする。

 # JSON形式 (デフォルト)
 aws configure export-credentials
 
 # 環境変数形式 (export付き)
 aws configure export-credentials --format env
 
 # 環境変数形式 (export無し)
 aws configure export-credentials --format env-no-export
 
 # PowerShell形式
 aws configure export-credentials --format powershell
 
 # Windows CMD形式
 aws configure export-credentials --format windows-cmd


  • 使用例 (環境変数として設定)
 # Bash / Zsh
 eval $(aws configure export-credentials --format env --profile production)
 
 # PowerShell
 Invoke-Expression (aws configure export-credentials --format powershell --profile production)



環境変数

設定ファイルの代わりに環境変数で設定を上書きできる。
環境変数はコマンドラインオプションに次いで優先度が高い。

基本的な環境変数

環境変数 説明
AWS_PROFILE 使用するプロファイル export AWS_PROFILE=production
AWS_REGION AWSリージョン export AWS_REGION=ap-northeast-1
AWS_DEFAULT_REGION デフォルトリージョン export AWS_DEFAULT_REGION=us-west-2
AWS_DEFAULT_OUTPUT 出力形式 export AWS_DEFAULT_OUTPUT=json
AWS_CONFIG_FILE configファイルの場所 export AWS_CONFIG_FILE=~/.aws/custom-config
AWS_SHARED_CREDENTIALS_FILE credentialsファイルの場所 export AWS_SHARED_CREDENTIALS_FILE=~/.aws/custom-creds


認証情報の環境変数

環境変数 説明
AWS_ACCESS_KEY_ID アクセスキーID export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY シークレットアクセスキー export AWS_SECRET_ACCESS_KEY=wJalrXUtn...
AWS_SESSION_TOKEN セッショントークン export AWS_SESSION_TOKEN=IQoJb3JpZ2...


その他の環境変数

環境変数 説明
AWS_PAGER ページャ設定 export AWS_PAGER=""
AWS_CA_BUNDLE CAバンドルファイル export AWS_CA_BUNDLE=/path/to/ca.pem
AWS_MAX_ATTEMPTS 最大リトライ回数 export AWS_MAX_ATTEMPTS=5
AWS_RETRY_MODE リトライモード export AWS_RETRY_MODE=adaptive


環境変数の設定例

 # Linux / MacOS (Bash / Zsh)
 
 export AWS_PROFILE=production
 export AWS_REGION=ap-northeast-1
 export AWS_PAGER=""
 
 # コマンド実行
 aws s3 ls


 # Windows (PowerShell)
 
 $env:AWS_PROFILE = "production"
 $env:AWS_REGION = "ap-northeast-1"
 $env:AWS_PAGER = ""
 
 # コマンド実行
 aws s3 ls


 # Windows (CMD)
 
 set AWS_PROFILE=production
 set AWS_REGION=ap-northeast-1
 set AWS_PAGER=
 
 # コマンド実行
 aws s3 ls



設定項目の詳細

各設定項目の詳細な説明を示す。

region

デフォルトで使用するAWSリージョンを指定する。

  • 有効な値
    任意のAWSリージョンコード
    例1 : ap-northeast-1 (東京)
    例2 : us-west-2 (オレゴン)
  • 環境変数
    AWS_REGION または AWS_DEFAULT_REGION
  • コマンドラインオプション
    --region


 [default]
 region = ap-northeast-1


主要なリージョンコードを以下に示す。

  • us-east-1
    米国東部 (バージニア北部)
  • us-west-2
    米国西部 (オレゴン)
  • ap-northeast-1
    アジアパシフィック (東京)
  • ap-southeast-1
    アジアパシフィック (シンガポール)
  • eu-west-1
    欧州 (アイルランド)


output

コマンドの出力形式を指定する。

  • 有効な値
    jsonyamlyaml-streamtexttable
  • デフォルト
    json
  • 環境変数
    AWS_DEFAULT_OUTPUT
  • コマンドラインオプション
    --output


 [default]
 output = json


各出力形式の特徴を以下に示す。

  • json
    JSON形式で出力
    プログラムでの処理に適する
  • yaml
    YAML形式で出力
    可読性が高い
  • yaml-stream
    ストリーミングYAML形式
    大きなデータの高速処理に適する
  • text
    タブ区切りテキスト形式
    grep、sed、awk等での処理に適する
  • table
    テーブル形式
    人間が読みやすい


aws_access_key_id

認証に使用するAWSアクセスキーIDを指定する。

  • 環境変数
    AWS_ACCESS_KEY_ID
  • 推奨
    ~/.aws/credentialsファイルに保存


 # configファイルでも設定可能だが推奨されない
 [default]
 aws_access_key_id = AKIAIOSFODNN7EXAMPLE


※セキュリティ上の注意
アクセスキーはcredentialsファイルに保存し、configファイルには記載しないことを推奨する。

aws_secret_access_key

認証に使用するAWSシークレットアクセスキーを指定する。

  • 環境変数
    AWS_SECRET_ACCESS_KEY
  • 推奨
    ~/.aws/credentialsファイルに保存


 # configファイルでも設定可能だが推奨されない
 [default]
 aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY


aws_session_token

一時的なセキュリティ認証情報を使用する場合に必要なセッショントークンを指定する。

  • 環境変数
    AWS_SESSION_TOKEN
  • 用途
    一時認証情報 (STS) 使用時に必要


 [default]
 aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE


credential_process

外部プロセスから認証情報を取得するためのコマンドを指定する。

コマンドは標準出力に以下のJSON形式で認証情報を出力する必要がある。

 {
   "Version": 1,
   "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
   "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
   "SessionToken": "token",
   "Expiration": "2025-12-31T23:59:59Z"
 }


 [profile custom-auth]
 credential_process = /opt/bin/get-credentials.sh --user myuser


※セキュリティ警告
この機能は潜在的に危険である。
信頼できるプログラムのみを使用すること。
configファイルのパーミッションを適切に設定すること。

credential_source

EC2インスタンスまたはコンテナ内でロールを引き受ける際の認証情報のソースを指定する。
source_profile と同時に指定できない。

  • 有効な値
    EnvironmentEc2InstanceMetadataEcsContainer


 [profile ec2-role]
 role_arn = arn:aws:iam::123456789012:role/MyEC2Role
 credential_source = Ec2InstanceMetadata


各ソースの説明を以下に示す。

  • Environment
    環境変数から認証情報を取得
    AWS_PROFILE 環境変数と併用不可
  • Ec2InstanceMetadata
    EC2インスタンスメタデータから取得
    インスタンスプロファイルが必要
  • EcsContainer
    ECSコンテナ認証情報から取得
    タスクロールが必要


source_profile

ロールを引き受ける際に使用する長期認証情報を含むプロファイルを指定する。
credential_source と同時に指定できない。

 [default]
 aws_access_key_id = AKIAIOSFODNN7EXAMPLE
 aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
 
 [profile production]
 role_arn = arn:aws:iam::123456789012:role/ProdRole
 source_profile = default


role_arn

引き受けるIAMロールのARNを指定する。

  • 環境変数
    AWS_ROLE_ARN
  • 必須
    source_profile または credential_source のいずれかが必要


 [profile admin]
 role_arn = arn:aws:iam::123456789012:role/AdminRole
 source_profile = default


role_session_name

ロールセッションに付ける名前を指定する。
この値は AssumeRoleRoleSessionName パラメータに渡される。

  • 環境変数
    AWS_ROLE_SESSION_NAME
  • デフォルト
    自動生成される


 [profile admin]
 role_arn = arn:aws:iam::123456789012:role/AdminRole
 source_profile = default
 role_session_name = admin-session-yamada


CloudTrailログでセッション名が記録されるため、監査に有用である。

duration_seconds

ロールセッションの最大期間を秒単位で指定する。

  • 範囲
    900秒 (15分)~ ロールの最大セッション期間設定値 (最大43200秒)
  • デフォルト
    3600秒 (1時間)


 [profile long-session]
 role_arn = arn:aws:iam::123456789012:role/MyRole
 source_profile = default
 duration_seconds = 7200


※注意
ロール側でも最大セッション期間が設定されており、その値を超えることはできない。

external_id

第三者が顧客のアカウントでロールを引き受ける際に使用する一意の識別子を指定する。

 [profile partner-access]
 role_arn = arn:aws:iam::123456789012:role/PartnerRole
 source_profile = default
 external_id = unique-external-id-12345


信頼ポリシーで ExternalId 条件が設定されている場合に必要となる。

mfa_serial

ロールを引き受ける際に使用するMFAデバイスの識別番号を指定する。

  • 形式
    ハードウェアデバイスのシリアル番号 (例 : GAHT12345678
    仮想MFAデバイスのARN (例 : arn:aws:iam::123456789012:mfa/username


 [profile secure-prod]
 role_arn = arn:aws:iam::123456789012:role/ProdRole
 source_profile = default
 mfa_serial = arn:aws:iam::123456789012:mfa/username


初回のロール引き受け時にMFAコードの入力が求められる。
一時認証情報はキャッシュされ、期限切れまで再入力は不要である。

web_identity_token_file

IDプロバイダーから提供されるOAuth 2.0アクセストークン、または、OpenID ConnectIDトークンを含むファイルのパスを指定する。

  • 環境変数
    AWS_WEB_IDENTITY_TOKEN_FILE
  • 用途
    Web Identityを使用したロール引き受け


 [profile web-identity]
 role_arn = arn:aws:iam::123456789012:role/WebIdentityRole
 web_identity_token_file = /path/to/token


sso_session

使用するSSO sessionセクションの名前を指定する。
IAM Identity Center (旧AWS SSO) の推奨設定方法である。

 [profile dev]
 sso_session = my-sso
 sso_account_id = 111122223333
 sso_role_name = PowerUser
 region = us-west-2
 
 [sso-session my-sso]
 sso_region = us-east-1
 sso_start_url = https://my-sso-portal.awsapps.com/start
 sso_registration_scopes = sso:account:access


sso_start_url

組織のAWSアクセスポータルを指すURLを指定する。
レガシーSSO設定で使用する。

 [profile legacy-sso]
 sso_start_url = https://my-sso-portal.awsapps.com/start
 sso_region = us-east-1
 sso_account_id = 123456789012
 sso_role_name = ReadOnly


※推奨
新規設定では、sso-session セクションを使用する方法を推奨する。

sso_region

AWSアクセスポータルホストを含むAWSリージョンを指定する。
デフォルトの region パラメータとは別の設定である。

 [profile sso-user]
 sso_start_url = https://portal.awsapps.com/start
 sso_region = us-east-1
 sso_account_id = 123456789012
 sso_role_name = ReadOnly
 region = ap-northeast-1


sso_account_id

IAM Identity Centerユーザに付与する権限を持つIAMロールを含むAWSアカウントIDを指定する。

 [profile dev]
 sso_session = my-sso
 sso_account_id = 111122223333
 sso_role_name = PowerUser


sso_role_name

このプロファイルを使用する際のユーザ権限を定義するIAMロールのフレンドリー名を指定する。

 [profile readonly]
 sso_session = my-sso
 sso_account_id = 123456789012
 sso_role_name = ReadOnlyAccess


sso_registration_scopes

sso-session に対して承認されるスコープのカンマ区切りリストを指定する。

 [sso-session my-sso]
 sso_region = us-east-1
 sso_start_url = https://portal.awsapps.com/start
 sso_registration_scopes = sso:account:access


スコープはOAuth 2.0のメカニズムであり、アプリケーションのアクセス範囲を制限する。

endpoint_url

全てのサービスリクエストで使用されるエンドポイントを指定する。

  • 環境変数
    AWS_ENDPOINT_URL
  • 用途
    LocalStack、MinIO等のローカル開発環境
    カスタムエンドポイント


 [profile localstack]
 endpoint_url = http://localhost:4566
 region = us-east-1


サービス固有のエンドポイントは、services セクションで設定する。

services_setting

使用するサービス固有設定のセクション名を指定する。

 [profile dev]
 services = dev-services
 
 [services dev-services]
 dynamodb = 
     endpoint_url = http://localhost:8000
 s3 = 
     endpoint_url = http://localhost:4566


ignore_configure_endpoint_urls

有効にすると、configファイルで指定された全てのカスタムエンドポイント設定を無視する。

  • 有効な値
    truefalse


 [profile ignore-custom]
 ignore_configure_endpoint_urls = true


use_dualstack_endpoint

デュアルスタックエンドポイント (IPv4とIPv6の両方をサポート)の使用を有効にする。

  • 有効な値
    truefalse
  • デフォルト
    false


 [profile dualstack]
 use_dualstack_endpoint = true


※注意
全てのサービスとリージョンでデュアルスタックエンドポイントが利用可能とは限らない。

use_fips_endpoint

FIPS 140-2準拠のエンドポイントの使用を指定する。

  • 有効な値
    truefalse
  • 用途
    米国政府機関等でFIPS準拠が必要な場合


 [profile fips]
 use_fips_endpoint = true


※注意
全てのサービスとリージョンでFIPSエンドポイントが利用可能とは限らない。

account_id_endpoint_mode

サポートされているAWSサービスへの呼び出しにアカウントベースのエンドポイントIDを使用するかどうかを指定する。

  • 有効な値
    preferred (デフォルト)、disabledrequired
  • 環境変数
    AWS_ACCOUNT_ID_ENDPOINT_MODE


 [profile account-based]
 account_id_endpoint_mode = required
 aws_account_id = 123456789012


aws_account_id

アカウントベースのエンドポイントで使用するAWSアカウントIDを指定する。

  • 環境変数
    AWS_ACCOUNT_ID


 [profile my-account]
 aws_account_id = 123456789012
 account_id_endpoint_mode = preferred


max_attempts

AWS CLIリトライハンドラが使用する最大リトライ試行回数を指定する。
初回呼び出しも回数に含まれる。

  • デフォルト
    3回
  • 環境変数
    AWS_MAX_ATTEMPTS


 [profile resilient]
 max_attempts = 10


retry_mode

AWS CLIが実行するリトライのタイプを指定する。

  • 有効な値
    standardlegacyadaptive
  • デフォルト
    standard
  • 環境変数
    AWS_RETRY_MODE


 [profile adaptive]
 retry_mode = adaptive
 max_attempts = 10


各モードの説明を以下に示す。

  • standard
    AWS SDK全体で標準化されたリトライルール
    リトライクォータをサポート
  • legacy
    AWS CLI v1互換のレガシーモード
  • adaptive
    実験的モード
    自動クライアント側スロットリングを含む


cli_pager

出力データに使用するページャプログラムを指定する。

  • デフォルト
    Linux / MacOSでは less
    Windowsでは more
  • 環境変数
    AWS_PAGER


 [default]
 cli_pager = less


ページャを無効化する場合は空文字列を設定する。

 [default]
 cli_pager =


cli_timestamp_format

タイムスタンプ値の出力形式を指定する。

  • 有効な値
    iso8601wire
  • デフォルト
    iso8601


 [default]
 cli_timestamp_format = iso8601


各形式の説明を以下に示す。

  • iso8601
    ISO 8601形式で表示
    例 : 2024-05-08T15:16:43Z
  • wire
    HTTPレスポンスで受信した形式のまま表示


cli_binary_format

バイナリ入力パラメータの解釈方法を指定する。

  • 有効な値
    base64raw-in-base64-out
  • デフォルト
    base64


 [default]
 cli_binary_format = base64


各形式の説明を以下に示す。

  • base64
    バイナリ値をBase64エンコード文字列として扱う
  • raw-in-base64-out
    AWS CLI v1互換モード
    バイナリ値を生のバイナリとして扱う


cli_auto_prompt

AWS CLI v2の自動プロンプト機能を有効にする。

  • 有効な値
    onon-partial
  • 環境変数
    AWS_CLI_AUTO_PROMPT
  • コマンドラインオプション
    --cli-auto-prompt--no-cli-auto-prompt


 [default]
 cli_auto_prompt = on-partial


各モードの説明を以下に示す。

  • on
    完全な自動プロンプトモード
    全てのコマンドでプロンプトが表示される。
  • on-partial
    部分的な自動プロンプトモード
    不完全なコマンドやエラー時のみプロンプトが表示される。


cli_help_output

help コマンドの表示形式を設定する。

  • 有効な値
    terminalbrowserurl
  • デフォルト
    terminal


 [default]
 cli_help_output = browser


各形式の説明を以下に示す。

  • terminal
    ターミナルでmanページを開く。
  • browser
    デフォルトブラウザでHTMLページを開く。
  • url
    オンラインドキュメントのURLを表示する。


cli_history

AWS CLIのコマンド履歴を有効にする。

  • 有効な値
    enableddisabled
  • デフォルト
    disabled


 [default]
 cli_history = enabled


有効化すると、aws history コマンドで履歴を確認できる。

tcp_keepalive

AWS CLIクライアントがTCPキープアライブパケットを使用するかどうかを指定する。

  • 有効な値
    truefalse


 [default]
 tcp_keepalive = true


ca_bundle

SSL証明書の検証時に使用するCA証明書バンドルのパスを指定する。

  • 環境変数
    AWS_CA_BUNDLE
  • コマンドラインオプション
    --ca-bundle


 [default]
 ca_bundle = /path/to/ca-bundle.pem


企業プロキシ環境等で独自のCA証明書を使用する場合に必要となる。

metadata_service_timeout

メタデータサービスリクエストがタイムアウトするまでの秒数を指定する。

  • デフォルト
    1秒
  • 環境変数
    AWS_METADATA_SERVICE_TIMEOUT


 [profile ec2]
 metadata_service_timeout = 5


IAMロールを使用して認証情報を提供する場合に使用される。

metadata_service_num_attempts

認証情報の取得を試行する回数を指定する。

  • デフォルト
    1回
  • 環境変数
    AWS_METADATA_SERVICE_NUM_ATTEMPTS


 [profile ec2]
 metadata_service_num_attempts = 3


parameter_validation

リクエストをシリアライズする際にパラメータ検証を実行するかどうかを制御する。

  • 有効な値
    truefalse
  • デフォルト
    true


 [default]
 parameter_validation = true


無効化するとパフォーマンスが向上する可能性があるが、推奨されない。

request_checksum_calculation

リクエストペイロードのチェックサムを計算するタイミングを指定する。

  • 有効な値
    when_supportedwhen_required
  • デフォルト
    when_supported
  • 環境変数
    AWS_REQUEST_CHECKSUM_CALCULATION


 [default]
 request_checksum_calculation = when_supported


response_checksum_validation

レスポンスペイロードのチェックサム検証を実行するタイミングを指定する。

  • 有効な値
    when_supportedwhen_required
  • デフォルト
    when_supported
  • 環境変数
    AWS_RESPONSE_CHECKSUM_VALIDATION


 [default]
 response_checksum_validation = when_supported


sigv4a_signing_region_set

SigV4aを使用して署名する際に使用するリージョンをカンマ区切りで指定する。

  • 環境変数
    AWS_SIGV4A_SIGNING_REGION_SET


 [default]
 sigv4a_signing_region_set = us-west-2, us-east-1


設定しない場合、AWSサービスのデフォルトが使用される。

api_versions

特定のAWSサービスで使用するAPIバージョンを指定する。
ネストされた設定として記述する。

 [profile specific-api]
 api_versions =
     ec2 = 2015-03-01
     cloudfront = 2015-09-17
     dynamodb = 2012-08-10


後方互換性を維持する必要がある場合に使用する。

sdk_ua_app_id

AWSサービスへの呼び出しを行ったソースアプリケーションを識別するアプリケーションIDを指定する。

  • 最大長
    50文字
  • 使用可能文字
    英数字と ! $ % & * + - . , ^ _ ` | ~
  • 環境変数
    AWS_SDK_UA_APP_ID


 [default]
 sdk_ua_app_id = myapp-prod


運用通知等でアプリケーションを識別するために使用される。

addressing_style

S3エンドポイントのアドレス指定スタイルを指定する。

  • 有効な値
    pathvirtualauto
  • デフォルト
    auto


 [default]
 s3 =
     addressing_style = path


各スタイルの説明


payload_signing_enabled

S3リクエストに対してSHA256ペイロード署名を実行するかどうかを指定する。

  • 有効な値
    truefalse
  • デフォルト
    ストリーミングアップロード時は、false


 [default]
 s3 =
     payload_signing_enabled = false


無効化するとパフォーマンスオーバーヘッドを削減できる。

use_accelerate_endpoint

全ての s3 および s3api コマンドでAmazon S3 Transfer Accelerationエンドポイントを使用するかどうかを指定する。

  • 有効な値
    truefalse
  • デフォルト
    false
  • 制約
    use_dualstack_endpoint と相互排他


 [default]
 s3 =
     use_accelerate_endpoint = true


バケットでTransfer Accelerationが有効化されている必要がある。

max_concurrent_requests

同時に実行できる最大リクエスト数を指定する。

  • デフォルト
    10


 [default]
 s3 =
     max_concurrent_requests = 20


値を増やすと転送速度が向上する可能性がある。
値を減らすとシステムリソースの消費を抑えられる。

max_queue_size

タスクキューの最大サイズを指定する。

  • デフォルト
    1000


 [default]
 s3 =
     max_queue_size = 10000


値を増やすとより多くのタスクを先読みできるが、メモリ使用量が増加する。

multipart_threshold

マルチパート転送を使用するファイルサイズの閾値を指定する。

  • デフォルト
    8MB
  • 形式
    数値または数値+サフィックス (KB、MB、GB、TB)


 [default]
 s3 =
     multipart_threshold = 64MB


multipart_chunksize

マルチパート転送時の個別ファイルのチャンクサイズを指定する。

  • デフォルト
    8MB
  • 最小
    5MB


 [default]
 s3 =
     multipart_chunksize = 16MB


max_bandwidth

S3との間でデータをアップロード・ダウンロードする際に消費できる最大帯域幅を指定する。

  • デフォルト
    無制限
  • 形式
    整数 (バイト/秒)または整数+サフィックス (KB/s、MB/s、GB/s)


 [default]
 s3 =
     max_bandwidth = 50MB/s


帯域幅を制限したい場合に使用する。

preferred_transfer_client

S3ファイル転送に使用する転送クライアントを指定する。

  • 有効な値
    autoclassiccrt
  • デフォルト
    auto


 [default]
 s3 =
     preferred_transfer_client = crt


各クライアントの説明を以下に示す。

  • auto
    条件に応じて自動選択
    可能な場合は、crt を使用
  • classic
    Python組み込み転送クライアント
    全ての機能をサポート
  • crt
    AWS Common Runtime (CRT) 転送クライアント
    C言語ベースで高速
    一部機能制限あり (S3間コピー等)



トラブルシューティング

設定ファイルが認識されない

  • 原因
    ファイルの場所が間違っている。
    ファイルのパーミッションが不適切。
  • 解決方法
    ファイルの場所を確認する。(~/.aws/config)
    環境変数 AWS_CONFIG_FILE を確認する。
    パーミッションを確認する。(600 または 644 を推奨)


 # ファイルの存在確認
 ls -la ~/.aws/config
 
 # パーミッション修正
 chmod 600 ~/.aws/config


プロファイルが見つからない

  • 原因
    プロファイル名が間違っている。
    configファイルの構文エラー
  • 解決方法
    プロファイル一覧を確認する。
    configファイルの構文を確認する。


 # プロファイル一覧
 aws configure list-profiles
 
 # 特定プロファイルの確認
 aws configure list --profile production


認証エラー

  • 原因
    認証情報が間違っている。
    認証情報の有効期限切れ。
    IAMロールの権限不足
  • 解決方法
    認証情報を確認する。
    一時認証情報の場合は再取得する。
    IAMポリシーを確認する。


 # 現在の認証情報確認
 aws sts get-caller-identity
 
 # SSO再ログイン
 aws sso login --profile production


ロール引き受けエラー

  • 原因
    信頼関係が設定されていない。
    source_profile の認証情報が無効
    MFAが設定されているが提供されていない。
  • 解決方法
    IAMロールの信頼関係を確認する。
    ソースプロファイルの認証情報を確認する。
    MFA設定を確認する。


SSOログインエラー

  • 原因
    SSOセッションの有効期限切れ
    sso_start_url が間違っている。
    ネットワーク接続の問題
  • 解決方法
    再ログインする。
    SSO設定を確認する。
    ネットワーク接続を確認する。


 # SSOログイン
 aws sso login --profile dev
 
 # SSOセッション確認
 cat ~/.aws/sso/cache/*.json


エンドポイント接続エラー

  • 原因
    カスタムエンドポイントが起動していない。
    エンドポイントURLが間違っている。
    ネットワーク接続の問題
  • 解決方法
    エンドポイントの起動状態を確認する。
    URLを確認する。
    ポート番号を確認する。


 # LocalStackの起動確認
 curl http://localhost:4566/_localstack/health
 
 # ポート確認
 netstat -an | grep 4566



ベストプラクティス

セキュリティ

  • 認証情報の分離
    アクセスキーは credentials ファイルに保存
    その他の設定は config ファイルに保存
  • ファイルパーミッション
    chmod 600 ~/.aws/credentials
    chmod 600 ~/.aws/config
  • IAMロールの使用
    可能な限りIAMロールを使用
    長期認証情報の使用を避ける
  • SSOの活用
    複数アカウント管理にはSSOを使用
    一時認証情報による安全性向上


設定管理

  • プロファイルの命名規則
    環境や用途が分かりやすい名前を使用
    例 : dev、staging、prod
  • コメントの活用
    configファイルにコメントを記載
    設定の目的や注意事項を記録
  • バージョン管理
    configファイル (認証情報を除く) をGit管理
    チームで設定を共有


パフォーマンス

  • リトライ設定の最適化
    retry_mode = adaptive を検討する。
    max_attempts を適切に設定する。
  • S3転送の最適化
    max_concurrent_requests を調整する。
    multipart_threshold を適切に設定する。
    CRT転送クライアントの活用
  • ページャの無効化
    スクリプト実行時は cli_pager を無効化する。


開発環境

  • ローカル開発用プロファイル
    LocalStack等用の専用プロファイルを作成する。
    エンドポイント設定を明確化する。
  • 環境変数の活用
    CI/CD環境では環境変数を使用する。
    ローカル開発では AWS_PROFILE を使用する。


設定例テンプレート

 # ~/.aws/config
 
 # デフォルトプロファイル (個人開発用)
 [default]
 region = ap-northeast-1
 output = json
 cli_pager = 
 
 # 開発環境
 [profile dev]
 sso_session = company-sso
 sso_account_id = 111111111111
 sso_role_name = Developer
 region = ap-northeast-1
 output = json
 
 # ステージング環境
 [profile staging]
 sso_session = company-sso
 sso_account_id = 222222222222
 sso_role_name = Developer
 region = ap-northeast-1
 output = json
 
 # 本番環境 (読み取り専用)
 [profile prod-readonly]
 sso_session = company-sso
 sso_account_id = 333333333333
 sso_role_name = ReadOnly
 region = us-east-1
 output = json
 
 # 本番環境 (管理者)
 [profile prod-admin]
 sso_session = company-sso
 sso_account_id = 333333333333
 sso_role_name = Administrator
 region = us-east-1
 output = json
 mfa_serial = arn:aws:iam::333333333333:mfa/username
 
 # SSO設定
 [sso-session company-sso]
 sso_region = us-east-1
 sso_start_url = https://company.awsapps.com/start
 sso_registration_scopes = sso:account:access
 
 # ローカル開発 (LocalStack)
 [profile localstack]
 region = us-east-1
 endpoint_url = http://localhost:4566
 services = localstack-services
 
 [services localstack-services]
 dynamodb = 
     endpoint_url = http://localhost:8000
 s3 = 
     endpoint_url = http://localhost:4566



関連リンク