MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
AWS CLI - 設定ファイルのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
AWS CLI - 設定ファイル
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == AWS CLIの設定ファイル (config) は、AWS CLIの動作を制御するための設定を保存するファイルである。<br> デフォルトの保存場所は、<u>~/.aws/config</u> である。<br> <br> 主な特徴を以下に示す。<br> * プロファイルベースの設定 *: 複数の設定を切り替えて使用可能 * 認証情報の管理 *: アクセスキー、ロール、SSO等の設定 * リージョンと出力形式 *: デフォルトのリージョンと出力形式を指定 * サービス固有設定 *: S3、DynamoDB等のサービス固有の設定 * エンドポイント設定 *: カスタムエンドポイントやFIPS、デュアルスタック等 <br> 設定ファイルの優先順位を以下に示す。<br> # コマンドラインオプション #: 最も優先度が高い # 環境変数 #: <code>AWS_REGION</code>、<code>AWS_PROFILE</code> 等 # 設定ファイル #: <u>~/.aws/config</u> および <u>~/.aws/credentials</u> <br> 設定ファイルはプレーンテキストファイルであり、INI形式で記述する。<br> <br><br> == ファイルの場所と形式 == ==== ファイルの場所 ==== 設定ファイルのデフォルトの場所を以下に示す。<br> <br> * Linux / MacOS *: <code>~/.aws/config</code> *: <code>~/.aws/credentials</code> * Windows *: <code>C:\Users\USERNAME\.aws\config</code> *: <code>C:\Users\USERNAME\.aws\credentials</code> <br> 環境変数でファイルの場所を変更できる。<br> * <code>AWS_CONFIG_FILE</code> *: configファイルの場所を指定 * <code>AWS_SHARED_CREDENTIALS_FILE</code> *: credentialsファイルの場所を指定 <br> ==== ファイルの形式 ==== 設定ファイルはINI形式で記述する。<br> <br> 基本的な構造を以下に示す。<br> <syntaxhighlight lang="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 </syntaxhighlight> <br> 形式のルールは以下の通りである。<br> * セクション名は角括弧 <code>[]</code> で囲む。 * 設定項目は <code>key = value</code> の形式 * コメント行は <code>#</code> で始める。 * ネストされた設定はインデントで表現する。 <br> ==== プロファイル名の規則 ==== * デフォルトプロファイル *: configファイル : <code>[default]</code> *: credentialsファイル : <code>[default]</code> * 名前付きプロファイル *: configファイル : <code>[profile name]</code> *: credentialsファイル : <code>[name]</code> <br> <u>※注意</u><br> <u>credentialsファイルでは、<code>profile</code> プレフィックスを付けない。</u><br> <br><br> == セクションの種類 == AWS CLI configファイルには5種類のセクションが存在する。<br> <br> ==== [default] セクション ==== プロファイルを指定しない場合に使用されるデフォルト設定である。<br> <br> <syntaxhighlight lang="ini"> [default] region = ap-northeast-1 output = json cli_pager = </syntaxhighlight> <br> ==== [profile <プロファイル名>] セクション ==== 名前付きプロファイルの設定である。<br> 複数の環境や用途に応じて設定を切り替えることができる。<br> <br> <syntaxhighlight lang="ini"> [profile development] region = us-west-2 output = yaml role_arn = arn:aws:iam::123456789012:role/DevRole source_profile = default </syntaxhighlight> <br> * プロファイルの使用方法 <syntaxhighlight lang="sh"> # コマンドラインで指定 aws s3 ls --profile development # 環境変数で指定 export AWS_PROFILE=development aws s3 ls </syntaxhighlight> <br> ==== [sso-session <セッション名>] セクション ==== IAM Identity Center (旧AWS SSO) のセッション設定である。<br> 複数のプロファイルでSSOセッションを共有できる。<br> <br> <syntaxhighlight lang="ini"> [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 </syntaxhighlight> <br> * プロファイルからの参照 <syntaxhighlight lang="ini"> [profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = ReadOnly region = us-west-2 </syntaxhighlight> <br> ==== [services <サービス設定名>] セクション ==== サービス固有のエンドポイント設定である。<br> 特定のサービスに対してカスタムエンドポイントを設定できる。<br> <br> <syntaxhighlight lang="ini"> [profile dev] services = my-services [services my-services] dynamodb = endpoint_url = http://localhost:8000 s3 = endpoint_url = http://localhost:4566 </syntaxhighlight> <br> * サービス識別子の形式 * APIモデルの <code>serviceId</code> を基に生成 * スペースをアンダースコアに変換 * 全て小文字に変換 *: 例1 : "Amazon S3" → "s3" *: 例2 : "Amazon DynamoDB" → "dynamodb" <br> ==== [plugins] セクション ==== AWS CLI v2のプラグイン設定である。<br> <br> <u>※注意</u><br> <u>AWS CLI v2のプラグインサポートは暫定的である。</u><br> <u>将来のバージョンで互換性が保証されない。</u><br> <br> <syntaxhighlight lang="ini"> [plugins] cli_legacy_plugin_path = /usr/local/lib/python3.8/site-packages my_custom_plugin = custom_plugin_module </syntaxhighlight> <br><br> == 基本設定項目 == [default] および [profile] セクションで使用できる基本的な設定項目を示す。<br> <br> ==== リージョンと出力形式 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#region|region]] || デフォルトのAWSリージョン || なし || <code>region = ap-northeast-1</code> |- | [[#output|output]] || 出力形式 || json || <code>output = json</code> |} </center> <br> ==== 認証情報 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#aws_access_key_id|aws_access_key_id]] || AWSアクセスキーID || <code>aws_access_key_id = AKIAIOSFODNN7EXAMPLE</code> |- | [[#aws_secret_access_key|aws_secret_access_key]] || AWSシークレットアクセスキー || <code>aws_secret_access_key = wJalrXUtn...</code> |- | [[#aws_session_token|aws_session_token]] || セッショントークン || <code>aws_session_token = IQoJb3JpZ2...</code> |- | [[#credential_process|credential_process]] || 外部プロセスから認証情報を取得 || <code>credential_process = /opt/bin/awscreds</code> |- | [[#credential_source|credential_source]] || 認証情報のソース || <code>credential_source = Ec2InstanceMetadata</code> |} </center> <br> <u>※推奨</u><br> <u>アクセスキーとシークレットキーは <code>~/.aws/credentials</code> ファイルに保存することを推奨する。</u><br> <br> ==== IAMロール関連 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#role_arn|role_arn]] || 引き受けるロールのARN || <code>role_arn = arn:aws:iam::123456789012:role/MyRole</code> |- | [[#source_profile|source_profile]] || ソースプロファイル || <code>source_profile = default</code> |- | [[#role_session_name|role_session_name]] || ロールセッション名 || <code>role_session_name = session_user1</code> |- | [[#duration_seconds|duration_seconds]] || セッション期間 (秒) || <code>duration_seconds = 3600</code> |- | [[#external_id|external_id]] || 外部ID || <code>external_id = unique-id</code> |- | [[#mfa_serial|mfa_serial]] || MFAデバイスのARN || <code>mfa_serial = arn:aws:iam::123456789012:mfa/user</code> |} </center> <br> ==== SSO (IAM Identity Center) 関連 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#sso_session|sso_session]] || SSOセッション名 || <code>sso_session = my-sso</code> |- | [[#sso_account_id|sso_account_id]] || SSOアカウントID || <code>sso_account_id = 123456789012</code> |- | [[#sso_role_name|sso_role_name]] || SSOロール名 || <code>sso_role_name = ReadOnly</code> |- | [[#sso_start_url|sso_start_url]] || SSOポータルURL (レガシー) || <code>sso_start_url = https://portal.awsapps.com/start</code> |- | [[#sso_region|sso_region]] || SSOリージョン (レガシー) || <code>sso_region = us-east-1</code> |} </center> <br> <u>※推奨</u><br> <u>新規設定では <code>sso-session</code> セクションを使用する方法を推奨する。</u><br> <br><br> == エンドポイント設定 == カスタムエンドポイント、FIPS、デュアルスタックエンドポイントの設定を行う。<br> <br> ==== エンドポイント関連 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#endpoint_url|endpoint_url]] || グローバルエンドポイントURL || <code>endpoint_url = http://localhost:4566</code> |- | [[#services_setting|services]] || サービス固有設定のセクション名 || <code>services = my-services</code> |- | [[#ignore_configure_endpoint_urls|ignore_configure_endpoint_urls]] || エンドポイント設定を無視 || <code>ignore_configure_endpoint_urls = true</code> |- | [[#use_dualstack_endpoint|use_dualstack_endpoint]] || デュアルスタックエンドポイント使用 || <code>use_dualstack_endpoint = true</code> |- | [[#use_fips_endpoint|use_fips_endpoint]] || FIPSエンドポイント使用 || <code>use_fips_endpoint = true</code> |- | [[#account_id_endpoint_mode|account_id_endpoint_mode]] || アカウントベースエンドポイントモード || <code>account_id_endpoint_mode = preferred</code> |- | [[#aws_account_id|aws_account_id]] || AWSアカウントID || <code>aws_account_id = 123456789012</code> |} </center> <br> ==== エンドポイント設定の優先順位 ==== エンドポイント設定は複数の場所で指定できるが、以下に示す優先順位で適用される。<br> # コマンドラインオプション #: <code>--endpoint-url</code> # 環境変数 #: <code>AWS_ENDPOINT_URL</code> # サービス固有のエンドポイント設定 #: <code>services</code> セクション # グローバルエンドポイント設定 #: <code>endpoint_url</code> <br> ==== LocalStack等のローカル開発環境 ==== ローカル開発環境での使用例を以下に示す。<br> <br> <syntaxhighlight lang="ini"> [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 </syntaxhighlight> <br> * 使用方法 *: <syntaxhighlight lang="sh"> aws s3 ls --profile localstack aws dynamodb list-tables --profile localstack </syntaxhighlight> <br><br> == リトライとパフォーマンス設定 == ==== リトライ設定 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#max_attempts|max_attempts]] || 最大リトライ回数 || 3 || <code>max_attempts = 5</code> |- | [[#retry_mode|retry_mode]] || リトライモード || standard || <code>retry_mode = adaptive</code> |} </center> <br> リトライモードの種類を以下に示す。<br> * <code>standard</code> *: 標準のリトライルール *: AWS SDK全体で統一されたルール * <code>legacy</code> *: AWS CLI v1互換のレガシーモード * <code>adaptive</code> *: 実験的なアダプティブモード *: 自動的にクライアント側でスロットリングを調整 <br> <syntaxhighlight lang="ini"> [profile production] max_attempts = 10 retry_mode = adaptive </syntaxhighlight> <br> ==== タイムアウト設定 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#metadata_service_timeout|metadata_service_timeout]] || EC2メタデータタイムアウト || 1秒 || <code>metadata_service_timeout = 5</code> |- | [[#metadata_service_num_attempts|metadata_service_num_attempts]] || EC2メタデータリトライ回数 || 1回 || <code>metadata_service_num_attempts = 3</code> |} </center> <br> ==== 接続設定 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#tcp_keepalive|tcp_keepalive]] || TCP Keep-Alive使用 || <code>tcp_keepalive = true</code> |- | [[#ca_bundle|ca_bundle]] || CAバンドルファイルパス || <code>ca_bundle = /path/to/ca-bundle.pem</code> |} </center> <br><br> == 出力と表示設定 == ==== 出力形式 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#cli_pager|cli_pager]] || ページャプログラム || <code>cli_pager = less</code> |- | [[#cli_timestamp_format|cli_timestamp_format]] || タイムスタンプ形式 || <code>cli_timestamp_format = iso8601</code> |- | [[#cli_binary_format|cli_binary_format]] || バイナリ形式 || <code>cli_binary_format = base64</code> |- | [[#cli_auto_prompt|cli_auto_prompt]] || 自動プロンプト || <code>cli_auto_prompt = on</code> |- | [[#cli_help_output|cli_help_output]] || ヘルプ出力形式 || <code>cli_help_output = browser</code> |} </center> <br> ==== ページャの無効化 ==== AWS CLI v2はデフォルトでページャ (lessコマンド、あるいは、moreコマンド) を使用する。<br> 無効化するには空文字列を設定する。<br> <br> <syntaxhighlight lang="ini"> [default] cli_pager = </syntaxhighlight> <br> または環境変数で設定する。<br> <syntaxhighlight lang="sh"> export AWS_PAGER="" </syntaxhighlight> <br> ==== タイムスタンプ形式 ==== * <code>iso8601</code> (推奨) *: iso8601 *: ISO 8601形式で表示 *: 例 : 2024-05-08T15:16:43Z * <code>wire</code> *: HTTPレスポンスの形式のまま表示 <br> <syntaxhighlight lang="ini"> [default] cli_timestamp_format = iso8601 </syntaxhighlight> <br><br> == 検証とセキュリティ設定 == ==== パラメータ検証 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#parameter_validation|parameter_validation]] || パラメータ検証の実行 || true || <code>parameter_validation = false</code> |} </center> <br> パラメータ検証を無効化するとパフォーマンスが向上する可能性がある。<br> ただし、無効化は推奨されない。<br> <br> ==== チェックサム設定 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#request_checksum_calculation|request_checksum_calculation]] || リクエストチェックサム計算 || when_supported || <code>request_checksum_calculation = when_required</code> |- | [[#response_checksum_validation|response_checksum_validation]] || レスポンスチェックサム検証 || when_supported || <code>response_checksum_validation = when_required</code> |} </center> <br> 有効な値<br> * <code>when_supported</code> *: サポートされている場合に計算/検証 * <code>when_required</code> *: 必要な場合のみ計算/検証 <br> ==== 署名設定 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#sigv4a_signing_region_set|sigv4a_signing_region_set]] || SigV4a署名リージョンセット || <code>sigv4a_signing_region_set = us-west-2, us-east-1</code> |} </center> <br><br> == S3固有の設定 == S3コマンド用の設定は、<code>s3</code> キー配下にネストして記述する。<br> <br> ==== 基本設定 ==== <syntaxhighlight lang="ini"> [profile s3-optimized] s3 = max_concurrent_requests = 20 max_queue_size = 10000 multipart_threshold = 64MB multipart_chunksize = 16MB max_bandwidth = 50MB/s </syntaxhighlight> <br> ==== 転送設定 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#max_concurrent_requests|max_concurrent_requests]] || 最大同時リクエスト数 || 10 || <code>max_concurrent_requests = 20</code> |- | [[#max_queue_size|max_queue_size]] || タスクキュー最大サイズ || 1000 || <code>max_queue_size = 10000</code> |- | [[#multipart_threshold|multipart_threshold]] || マルチパート閾値 || 8MB || <code>multipart_threshold = 64MB</code> |- | [[#multipart_chunksize|multipart_chunksize]] || チャンクサイズ || 8MB || <code>multipart_chunksize = 16MB</code> |- | [[#max_bandwidth|max_bandwidth]] || 最大帯域幅 || 無制限 || <code>max_bandwidth = 50MB/s</code> |} </center> <br> ==== エンドポイント設定 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#addressing_style|addressing_style]] || アドレス指定スタイル || auto || <code>addressing_style = path</code> |- | [[#use_accelerate_endpoint|use_accelerate_endpoint]] || Transfer Acceleration使用 || false || <code>use_accelerate_endpoint = true</code> |- | [[#payload_signing_enabled|payload_signing_enabled]] || ペイロード署名 || false || <code>payload_signing_enabled = true</code> |} </center> <br> アドレス指定スタイルの種類<br> * <code>path</code> *: パススタイル *: 例 : <code>https://s3.amazonaws.com/bucketname/key</code> * <code>virtual</code> *: 仮想ホストスタイル *: 例 : <code>https://bucketname.s3.amazonaws.com/key</code> * <code>auto</code> *: 自動選択 (推奨) <br> ==== 転送クライアント ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#preferred_transfer_client|preferred_transfer_client]] || 転送クライアント || auto || <code>preferred_transfer_client = crt</code> |} </center> <br> 転送クライアントの種類<br> * <code>auto</code> *: 自動選択 *: 条件が揃えば <code>crt</code> を使用 * <code>classic</code> *: Python組み込みクライアント *: 全ての機能をサポート * <code>crt</code> *: AWS Common Runtime (CRT) クライアント *: 高速だが一部機能制限あり <br><br> == その他の設定項目 == ==== コマンド履歴 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! デフォルト !! 例 |- | [[#cli_history|cli_history]] || コマンド履歴の記録 || disabled || <code>cli_history = enabled</code> |} </center> <br> コマンド履歴を有効化する時、<code>aws history</code> コマンドで過去のコマンドを確認できる。<br> <br> <syntaxhighlight lang="sh"> # 履歴一覧 aws history list # 詳細表示 aws history show <command_id> </syntaxhighlight> <br> ==== APIバージョン指定 ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#api_versions|api_versions]] || サービス固有のAPIバージョン || 下記参照 |} </center> <br> <syntaxhighlight lang="ini"> [profile specific-versions] api_versions = ec2 = 2015-03-01 cloudfront = 2015-09-17 </syntaxhighlight> <br> ==== アプリケーションID ==== <center> {| class="wikitable" |- ! 設定項目 !! 説明 !! 例 |- | [[#sdk_ua_app_id|sdk_ua_app_id]] || アプリケーション識別子 || <code>sdk_ua_app_id = myapp</code> |} </center> <br> アプリケーションIDは運用通知等でアプリケーションを識別するために使用される。<br> 最大50文字まで指定可能である。<br> <br><br> == 設定ファイルの例 == ==== 基本的な設定例 ==== <syntaxhighlight lang="ini"> # デフォルトプロファイル [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 </syntaxhighlight> <br> ==== SSO設定の例 ==== <syntaxhighlight lang="ini"> # 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 </syntaxhighlight> <br> ==== ローカル開発環境の例 ==== <syntaxhighlight lang="ini"> # 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 </syntaxhighlight> <br> ==== 複数環境の設定例 ==== <syntaxhighlight lang="ini"> # 開発環境 [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 </syntaxhighlight> <br> ==== S3最適化設定の例 ==== <syntaxhighlight lang="ini"> [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 </syntaxhighlight> <br><br> == 設定コマンド == ==== 初期設定 ==== 対話形式で基本設定を行う。<br> <br> <syntaxhighlight lang="sh"> aws configure </syntaxhighlight> <br> * 入力が求められる項目 ** AWS Access Key ID **: アクセスキーID ** AWS Secret Access Key **: シークレットアクセスキー ** Default region name **: デフォルトリージョン (例 : ap-northeast-1) ** Default output format **: 出力形式 (json、yaml、text、table) <br> * プロファイルを指定して設定する場合 *: <syntaxhighlight lang="sh"> aws configure --profile production </syntaxhighlight> <br> ==== 個別設定の変更 ==== 特定の設定項目のみを変更する。<br> <br> <syntaxhighlight lang="sh"> # リージョンの設定 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 </syntaxhighlight> <br> ==== 設定の確認 ==== 現在の設定を確認する。<br> <br> <syntaxhighlight lang="sh"> # 設定一覧の表示 aws configure list # プロファイルを指定して表示 aws configure list --profile production # 特定の設定値を取得 aws configure get region aws configure get region --profile production </syntaxhighlight> <br> # 出力例 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 <br> ==== プロファイル一覧 ==== 設定されているプロファイルの一覧を表示する。<br> <br> <syntaxhighlight lang="sh"> aws configure list-profiles </syntaxhighlight> <br> # 出力例 default development production localstack <br> ==== SSO設定 ==== IAM Identity Center (SSO) の設定を対話形式で行う。<br> <br> <syntaxhighlight lang="sh"> # SSO設定 aws configure sso # SSOセッション設定 aws configure sso-session </syntaxhighlight> <br> ==== 認証情報のエクスポート ==== 現在の認証情報を他の形式でエクスポートする。<br> <br> <syntaxhighlight lang="sh"> # 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 </syntaxhighlight> <br> * 使用例 (環境変数として設定) <syntaxhighlight lang="sh"> # Bash / Zsh eval $(aws configure export-credentials --format env --profile production) # PowerShell Invoke-Expression (aws configure export-credentials --format powershell --profile production) </syntaxhighlight> <br><br> == 環境変数 == 設定ファイルの代わりに環境変数で設定を上書きできる。<br> 環境変数はコマンドラインオプションに次いで優先度が高い。<br> <br> ==== 基本的な環境変数 ==== <center> {| class="wikitable" |- ! 環境変数 !! 説明 !! 例 |- | <code>AWS_PROFILE</code> || 使用するプロファイル || <code>export AWS_PROFILE=production</code> |- | <code>AWS_REGION</code> || AWSリージョン || <code>export AWS_REGION=ap-northeast-1</code> |- | <code>AWS_DEFAULT_REGION</code> || デフォルトリージョン || <code>export AWS_DEFAULT_REGION=us-west-2</code> |- | <code>AWS_DEFAULT_OUTPUT</code> || 出力形式 || <code>export AWS_DEFAULT_OUTPUT=json</code> |- | <code>AWS_CONFIG_FILE</code> || configファイルの場所 || <code>export AWS_CONFIG_FILE=~/.aws/custom-config</code> |- | <code>AWS_SHARED_CREDENTIALS_FILE</code> || credentialsファイルの場所 || <code>export AWS_SHARED_CREDENTIALS_FILE=~/.aws/custom-creds</code> |} </center> <br> ==== 認証情報の環境変数 ==== <center> {| class="wikitable" |- ! 環境変数 !! 説明 !! 例 |- | <code>AWS_ACCESS_KEY_ID</code> || アクセスキーID || <code>export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE</code> |- | <code>AWS_SECRET_ACCESS_KEY</code> || シークレットアクセスキー || <code>export AWS_SECRET_ACCESS_KEY=wJalrXUtn...</code> |- | <code>AWS_SESSION_TOKEN</code> || セッショントークン || <code>export AWS_SESSION_TOKEN=IQoJb3JpZ2...</code> |} </center> <br> ==== その他の環境変数 ==== <center> {| class="wikitable" |- ! 環境変数 !! 説明 !! 例 |- | <code>AWS_PAGER</code> || ページャ設定 || <code>export AWS_PAGER=""</code> |- | <code>AWS_CA_BUNDLE</code> || CAバンドルファイル || <code>export AWS_CA_BUNDLE=/path/to/ca.pem</code> |- | <code>AWS_MAX_ATTEMPTS</code> || 最大リトライ回数 || <code>export AWS_MAX_ATTEMPTS=5</code> |- | <code>AWS_RETRY_MODE</code> || リトライモード || <code>export AWS_RETRY_MODE=adaptive</code> |} </center> <br> ==== 環境変数の設定例 ==== <syntaxhighlight lang="sh"> # Linux / MacOS (Bash / Zsh) export AWS_PROFILE=production export AWS_REGION=ap-northeast-1 export AWS_PAGER="" # コマンド実行 aws s3 ls </syntaxhighlight> <br> <syntaxhighlight lang="powershell"> # Windows (PowerShell) $env:AWS_PROFILE = "production" $env:AWS_REGION = "ap-northeast-1" $env:AWS_PAGER = "" # コマンド実行 aws s3 ls </syntaxhighlight> <br> <syntaxhighlight lang="bat"> # Windows (CMD) set AWS_PROFILE=production set AWS_REGION=ap-northeast-1 set AWS_PAGER= # コマンド実行 aws s3 ls </syntaxhighlight> <br><br> == 設定項目の詳細 == 各設定項目の詳細な説明を示す。<br> <br> ==== region ==== デフォルトで使用するAWSリージョンを指定する。<br> <br> * 有効な値 *: 任意のAWSリージョンコード *: 例1 : <code>ap-northeast-1</code> (東京) *: 例2 : <code>us-west-2</code> (オレゴン) * 環境変数 *: <code>AWS_REGION</code> または <code>AWS_DEFAULT_REGION</code> * コマンドラインオプション *: <code>--region</code> <br> <syntaxhighlight lang="ini"> [default] region = ap-northeast-1 </syntaxhighlight> <br> 主要なリージョンコードを以下に示す。<br> * <code>us-east-1</code> *: 米国東部 (バージニア北部) * <code>us-west-2</code> *: 米国西部 (オレゴン) * <code>ap-northeast-1</code> *: アジアパシフィック (東京) * <code>ap-southeast-1</code> *: アジアパシフィック (シンガポール) * <code>eu-west-1</code> *: 欧州 (アイルランド) <br> ==== output ==== コマンドの出力形式を指定する。<br> <br> * 有効な値 *: <code>json</code>、<code>yaml</code>、<code>yaml-stream</code>、<code>text</code>、<code>table</code> * デフォルト *: <code>json</code> * 環境変数 *: <code>AWS_DEFAULT_OUTPUT</code> * コマンドラインオプション *: <code>--output</code> <br> <syntaxhighlight lang="ini"> [default] output = json </syntaxhighlight> <br> 各出力形式の特徴を以下に示す。<br> * <code>json</code> *: JSON形式で出力 *: プログラムでの処理に適する * <code>yaml</code> *: YAML形式で出力 *: 可読性が高い * <code>yaml-stream</code> *: ストリーミングYAML形式 *: 大きなデータの高速処理に適する * <code>text</code> *: タブ区切りテキスト形式 *: grep、sed、awk等での処理に適する * <code>table</code> *: テーブル形式 *: 人間が読みやすい <br> ==== aws_access_key_id ==== 認証に使用するAWSアクセスキーIDを指定する。<br> <br> * 環境変数 *: <code>AWS_ACCESS_KEY_ID</code> * 推奨 *: ~/.aws/credentialsファイルに保存 <br> <syntaxhighlight lang="ini"> # configファイルでも設定可能だが推奨されない [default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE </syntaxhighlight> <br> <u>※セキュリティ上の注意</u><br> <u>アクセスキーはcredentialsファイルに保存し、configファイルには記載しないことを推奨する。</u><br> <br> ==== aws_secret_access_key ==== 認証に使用するAWSシークレットアクセスキーを指定する。<br> <br> * 環境変数 *: <code>AWS_SECRET_ACCESS_KEY</code> * 推奨 *: ~/.aws/credentialsファイルに保存 <br> <syntaxhighlight lang="ini"> # configファイルでも設定可能だが推奨されない [default] aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY </syntaxhighlight> <br> ==== aws_session_token ==== 一時的なセキュリティ認証情報を使用する場合に必要なセッショントークンを指定する。<br> <br> * 環境変数 *: <code>AWS_SESSION_TOKEN</code> * 用途 *: 一時認証情報 (STS) 使用時に必要 <br> <syntaxhighlight lang="ini"> [default] aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE </syntaxhighlight> <br> ==== credential_process ==== 外部プロセスから認証情報を取得するためのコマンドを指定する。<br> <br> コマンドは標準出力に以下のJSON形式で認証情報を出力する必要がある。<br> <syntaxhighlight lang="json"> { "Version": 1, "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "token", "Expiration": "2025-12-31T23:59:59Z" } </syntaxhighlight> <br> <syntaxhighlight lang="ini"> [profile custom-auth] credential_process = /opt/bin/get-credentials.sh --user myuser </syntaxhighlight> <br> <u>※セキュリティ警告</u><br> <u>この機能は潜在的に危険である。</u><br> <u>信頼できるプログラムのみを使用すること。</u><br> <u>configファイルのパーミッションを適切に設定すること。</u><br> <br> ==== credential_source ==== EC2インスタンスまたはコンテナ内でロールを引き受ける際の認証情報のソースを指定する。<br> <code>source_profile</code> と同時に指定できない。<br> <br> * 有効な値 *: <code>Environment</code>、<code>Ec2InstanceMetadata</code>、<code>EcsContainer</code> <br> <syntaxhighlight lang="ini"> [profile ec2-role] role_arn = arn:aws:iam::123456789012:role/MyEC2Role credential_source = Ec2InstanceMetadata </syntaxhighlight> <br> 各ソースの説明を以下に示す。<br> * <code>Environment</code> *: 環境変数から認証情報を取得 *: <code>AWS_PROFILE</code> 環境変数と併用不可 * <code>Ec2InstanceMetadata</code> *: EC2インスタンスメタデータから取得 *: インスタンスプロファイルが必要 * <code>EcsContainer</code> *: ECSコンテナ認証情報から取得 *: タスクロールが必要 <br> ==== source_profile ==== ロールを引き受ける際に使用する長期認証情報を含むプロファイルを指定する。<br> <code>credential_source</code> と同時に指定できない。<br> <br> <syntaxhighlight lang="ini"> [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 </syntaxhighlight> <br> ==== role_arn ==== 引き受けるIAMロールのARNを指定する。<br> <br> * 環境変数 *: <code>AWS_ROLE_ARN</code> * 必須 *: <code>source_profile</code> または <code>credential_source</code> のいずれかが必要 <br> <syntaxhighlight lang="ini"> [profile admin] role_arn = arn:aws:iam::123456789012:role/AdminRole source_profile = default </syntaxhighlight> <br> ==== role_session_name ==== ロールセッションに付ける名前を指定する。<br> この値は <code>AssumeRole</code> の <code>RoleSessionName</code> パラメータに渡される。<br> <br> * 環境変数 *: <code>AWS_ROLE_SESSION_NAME</code> * デフォルト *: 自動生成される <br> <syntaxhighlight lang="ini"> [profile admin] role_arn = arn:aws:iam::123456789012:role/AdminRole source_profile = default role_session_name = admin-session-yamada </syntaxhighlight> <br> CloudTrailログでセッション名が記録されるため、監査に有用である。<br> <br> ==== duration_seconds ==== ロールセッションの最大期間を秒単位で指定する。<br> <br> * 範囲 *: 900秒 (15分)~ ロールの最大セッション期間設定値 (最大43200秒) * デフォルト *: 3600秒 (1時間) <br> <syntaxhighlight lang="ini"> [profile long-session] role_arn = arn:aws:iam::123456789012:role/MyRole source_profile = default duration_seconds = 7200 </syntaxhighlight> <br> <u>※注意</u><br> <u>ロール側でも最大セッション期間が設定されており、その値を超えることはできない。</u><br> <br> ==== external_id ==== 第三者が顧客のアカウントでロールを引き受ける際に使用する一意の識別子を指定する。<br> <br> <syntaxhighlight lang="ini"> [profile partner-access] role_arn = arn:aws:iam::123456789012:role/PartnerRole source_profile = default external_id = unique-external-id-12345 </syntaxhighlight> <br> 信頼ポリシーで <code>ExternalId</code> 条件が設定されている場合に必要となる。<br> <br> ==== mfa_serial ==== ロールを引き受ける際に使用するMFAデバイスの識別番号を指定する。<br> <br> * 形式 *: ハードウェアデバイスのシリアル番号 (例 : <code>GAHT12345678</code>) *: 仮想MFAデバイスのARN (例 : <code>arn:aws:iam::123456789012:mfa/username</code>) <br> <syntaxhighlight lang="ini"> [profile secure-prod] role_arn = arn:aws:iam::123456789012:role/ProdRole source_profile = default mfa_serial = arn:aws:iam::123456789012:mfa/username </syntaxhighlight> <br> 初回のロール引き受け時にMFAコードの入力が求められる。<br> 一時認証情報はキャッシュされ、期限切れまで再入力は不要である。<br> <br> ==== web_identity_token_file ==== IDプロバイダーから提供されるOAuth 2.0アクセストークン、または、OpenID ConnectIDトークンを含むファイルのパスを指定する。<br> <br> * 環境変数 *: <code>AWS_WEB_IDENTITY_TOKEN_FILE</code> * 用途 *: Web Identityを使用したロール引き受け <br> <syntaxhighlight lang="ini"> [profile web-identity] role_arn = arn:aws:iam::123456789012:role/WebIdentityRole web_identity_token_file = /path/to/token </syntaxhighlight> <br> ==== sso_session ==== 使用するSSO sessionセクションの名前を指定する。<br> IAM Identity Center (旧AWS SSO) の推奨設定方法である。<br> <br> <syntaxhighlight lang="ini"> [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 </syntaxhighlight> <br> ==== sso_start_url ==== 組織のAWSアクセスポータルを指すURLを指定する。<br> レガシーSSO設定で使用する。<br> <br> <syntaxhighlight lang="ini"> [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 </syntaxhighlight> <br> <u>※推奨</u><br> <u>新規設定では、<code>sso-session</code> セクションを使用する方法を推奨する。</u><br> <br> ==== sso_region ==== AWSアクセスポータルホストを含むAWSリージョンを指定する。<br> デフォルトの <code>region</code> パラメータとは別の設定である。<br> <br> <syntaxhighlight lang="ini"> [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 </syntaxhighlight> <br> ==== sso_account_id ==== IAM Identity Centerユーザに付与する権限を持つIAMロールを含むAWSアカウントIDを指定する。<br> <br> <syntaxhighlight lang="ini"> [profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = PowerUser </syntaxhighlight> <br> ==== sso_role_name ==== このプロファイルを使用する際のユーザ権限を定義するIAMロールのフレンドリー名を指定する。<br> <br> <syntaxhighlight lang="ini"> [profile readonly] sso_session = my-sso sso_account_id = 123456789012 sso_role_name = ReadOnlyAccess </syntaxhighlight> <br> ==== sso_registration_scopes ==== <code>sso-session</code> に対して承認されるスコープのカンマ区切りリストを指定する。<br> <br> <syntaxhighlight lang="ini"> [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://portal.awsapps.com/start sso_registration_scopes = sso:account:access </syntaxhighlight> <br> スコープはOAuth 2.0のメカニズムであり、アプリケーションのアクセス範囲を制限する。<br> <br> ==== endpoint_url ==== 全てのサービスリクエストで使用されるエンドポイントを指定する。<br> <br> * 環境変数 *: <code>AWS_ENDPOINT_URL</code> * 用途 *: LocalStack、MinIO等のローカル開発環境 *: カスタムエンドポイント <br> <syntaxhighlight lang="ini"> [profile localstack] endpoint_url = http://localhost:4566 region = us-east-1 </syntaxhighlight> <br> サービス固有のエンドポイントは、<code>services</code> セクションで設定する。<br> <br> ==== services_setting ==== 使用するサービス固有設定のセクション名を指定する。<br> <br> <syntaxhighlight lang="ini"> [profile dev] services = dev-services [services dev-services] dynamodb = endpoint_url = http://localhost:8000 s3 = endpoint_url = http://localhost:4566 </syntaxhighlight> <br> ==== ignore_configure_endpoint_urls ==== 有効にすると、configファイルで指定された全てのカスタムエンドポイント設定を無視する。<br> <br> * 有効な値 *: <code>true</code>、<code>false</code> <br> <syntaxhighlight lang="ini"> [profile ignore-custom] ignore_configure_endpoint_urls = true </syntaxhighlight> <br> ==== use_dualstack_endpoint ==== デュアルスタックエンドポイント (IPv4とIPv6の両方をサポート)の使用を有効にする。<br> <br> * 有効な値 *: <code>true</code>、<code>false</code> * デフォルト *: <code>false</code> <br> <syntaxhighlight lang="ini"> [profile dualstack] use_dualstack_endpoint = true </syntaxhighlight> <br> <u>※注意</u><br> <u>全てのサービスとリージョンでデュアルスタックエンドポイントが利用可能とは限らない。</u><br> <br> ==== use_fips_endpoint ==== FIPS 140-2準拠のエンドポイントの使用を指定する。<br> <br> * 有効な値 *: <code>true</code>、<code>false</code> * 用途 *: 米国政府機関等でFIPS準拠が必要な場合 <br> <syntaxhighlight lang="ini"> [profile fips] use_fips_endpoint = true </syntaxhighlight> <br> <u>※注意</u><br> <u>全てのサービスとリージョンでFIPSエンドポイントが利用可能とは限らない。</u><br> <br> ==== account_id_endpoint_mode ==== サポートされているAWSサービスへの呼び出しにアカウントベースのエンドポイントIDを使用するかどうかを指定する。<br> <br> * 有効な値 *: <code>preferred</code> (デフォルト)、<code>disabled</code>、<code>required</code> * 環境変数 *: <code>AWS_ACCOUNT_ID_ENDPOINT_MODE</code> <br> <syntaxhighlight lang="ini"> [profile account-based] account_id_endpoint_mode = required aws_account_id = 123456789012 </syntaxhighlight> <br> ==== aws_account_id ==== アカウントベースのエンドポイントで使用するAWSアカウントIDを指定する。<br> <br> * 環境変数 *: <code>AWS_ACCOUNT_ID</code> <br> <syntaxhighlight lang="ini"> [profile my-account] aws_account_id = 123456789012 account_id_endpoint_mode = preferred </syntaxhighlight> <br> ==== max_attempts ==== AWS CLIリトライハンドラが使用する最大リトライ試行回数を指定する。<br> 初回呼び出しも回数に含まれる。<br> <br> * デフォルト *: 3回 * 環境変数 *: <code>AWS_MAX_ATTEMPTS</code> <br> <syntaxhighlight lang="ini"> [profile resilient] max_attempts = 10 </syntaxhighlight> <br> ==== retry_mode ==== AWS CLIが実行するリトライのタイプを指定する。<br> <br> * 有効な値 *: <code>standard</code>、<code>legacy</code>、<code>adaptive</code> * デフォルト *: <code>standard</code> * 環境変数 *: <code>AWS_RETRY_MODE</code> <br> <syntaxhighlight lang="ini"> [profile adaptive] retry_mode = adaptive max_attempts = 10 </syntaxhighlight> <br> 各モードの説明を以下に示す。<br> * <code>standard</code> *: AWS SDK全体で標準化されたリトライルール *: リトライクォータをサポート * <code>legacy</code> *: AWS CLI v1互換のレガシーモード * <code>adaptive</code> *: 実験的モード *: 自動クライアント側スロットリングを含む <br> ==== cli_pager ==== 出力データに使用するページャプログラムを指定する。<br> <br> * デフォルト *: Linux / MacOSでは <code>less</code> *: Windowsでは <code>more</code> * 環境変数 *: <code>AWS_PAGER</code> <br> <syntaxhighlight lang="ini"> [default] cli_pager = less </syntaxhighlight> <br> ページャを無効化する場合は空文字列を設定する。<br> <syntaxhighlight lang="ini"> [default] cli_pager = </syntaxhighlight> <br> ==== cli_timestamp_format ==== タイムスタンプ値の出力形式を指定する。<br> <br> * 有効な値 *: <code>iso8601</code>、<code>wire</code> * デフォルト *: <code>iso8601</code> <br> <syntaxhighlight lang="ini"> [default] cli_timestamp_format = iso8601 </syntaxhighlight> <br> 各形式の説明を以下に示す。<br> * <code>iso8601</code> *: ISO 8601形式で表示 *: 例 : <code>2024-05-08T15:16:43Z</code> * <code>wire</code> *: HTTPレスポンスで受信した形式のまま表示 <br> ==== cli_binary_format ==== バイナリ入力パラメータの解釈方法を指定する。<br> <br> * 有効な値 *: <code>base64</code>、<code>raw-in-base64-out</code> * デフォルト *: <code>base64</code> <br> <syntaxhighlight lang="ini"> [default] cli_binary_format = base64 </syntaxhighlight> <br> 各形式の説明を以下に示す。<br> * <code>base64</code> *: バイナリ値をBase64エンコード文字列として扱う * <code>raw-in-base64-out</code> *: AWS CLI v1互換モード *: バイナリ値を生のバイナリとして扱う <br> ==== cli_auto_prompt ==== AWS CLI v2の自動プロンプト機能を有効にする。<br> <br> * 有効な値 *: <code>on</code>、<code>on-partial</code> * 環境変数 *: <code>AWS_CLI_AUTO_PROMPT</code> * コマンドラインオプション *: <code>--cli-auto-prompt</code>、<code>--no-cli-auto-prompt</code> <br> <syntaxhighlight lang="ini"> [default] cli_auto_prompt = on-partial </syntaxhighlight> <br> 各モードの説明を以下に示す。<br> * <code>on</code> *: 完全な自動プロンプトモード *: 全てのコマンドでプロンプトが表示される。 * <code>on-partial</code> *: 部分的な自動プロンプトモード *: 不完全なコマンドやエラー時のみプロンプトが表示される。 <br> ==== cli_help_output ==== <code>help</code> コマンドの表示形式を設定する。<br> <br> * 有効な値 *: <code>terminal</code>、<code>browser</code>、<code>url</code> * デフォルト *: <code>terminal</code> <br> <syntaxhighlight lang="ini"> [default] cli_help_output = browser </syntaxhighlight> <br> 各形式の説明を以下に示す。<br> * <code>terminal</code> *: ターミナルでmanページを開く。 * <code>browser</code> *: デフォルトブラウザでHTMLページを開く。 * <code>url</code> *: オンラインドキュメントのURLを表示する。 <br> ==== cli_history ==== AWS CLIのコマンド履歴を有効にする。<br> <br> * 有効な値 *: <code>enabled</code>、<code>disabled</code> * デフォルト *: <code>disabled</code> <br> <syntaxhighlight lang="ini"> [default] cli_history = enabled </syntaxhighlight> <br> 有効化すると、<code>aws history</code> コマンドで履歴を確認できる。<br> <br> ==== tcp_keepalive ==== AWS CLIクライアントがTCPキープアライブパケットを使用するかどうかを指定する。<br> <br> * 有効な値 *: <code>true</code>、<code>false</code> <br> <syntaxhighlight lang="ini"> [default] tcp_keepalive = true </syntaxhighlight> <br> ==== ca_bundle ==== SSL証明書の検証時に使用するCA証明書バンドルのパスを指定する。<br> <br> * 環境変数 *: <code>AWS_CA_BUNDLE</code> * コマンドラインオプション *: <code>--ca-bundle</code> <br> <syntaxhighlight lang="ini"> [default] ca_bundle = /path/to/ca-bundle.pem </syntaxhighlight> <br> 企業プロキシ環境等で独自のCA証明書を使用する場合に必要となる。<br> <br> ==== metadata_service_timeout ==== メタデータサービスリクエストがタイムアウトするまでの秒数を指定する。<br> <br> * デフォルト *: 1秒 * 環境変数 *: <code>AWS_METADATA_SERVICE_TIMEOUT</code> <br> <syntaxhighlight lang="ini"> [profile ec2] metadata_service_timeout = 5 </syntaxhighlight> <br> IAMロールを使用して認証情報を提供する場合に使用される。<br> <br> ==== metadata_service_num_attempts ==== 認証情報の取得を試行する回数を指定する。<br> <br> * デフォルト *: 1回 * 環境変数 *: <code>AWS_METADATA_SERVICE_NUM_ATTEMPTS</code> <br> <syntaxhighlight lang="ini"> [profile ec2] metadata_service_num_attempts = 3 </syntaxhighlight> <br> ==== parameter_validation ==== リクエストをシリアライズする際にパラメータ検証を実行するかどうかを制御する。<br> <br> * 有効な値 *: <code>true</code>、<code>false</code> * デフォルト *: <code>true</code> <br> <syntaxhighlight lang="ini"> [default] parameter_validation = true </syntaxhighlight> <br> 無効化するとパフォーマンスが向上する可能性があるが、推奨されない。<br> <br> ==== request_checksum_calculation ==== リクエストペイロードのチェックサムを計算するタイミングを指定する。<br> <br> * 有効な値 *: <code>when_supported</code>、<code>when_required</code> * デフォルト *: <code>when_supported</code> * 環境変数 *: <code>AWS_REQUEST_CHECKSUM_CALCULATION</code> <br> <syntaxhighlight lang="ini"> [default] request_checksum_calculation = when_supported </syntaxhighlight> <br> ==== response_checksum_validation ==== レスポンスペイロードのチェックサム検証を実行するタイミングを指定する。<br> <br> * 有効な値 *: <code>when_supported</code>、<code>when_required</code> * デフォルト *: <code>when_supported</code> * 環境変数 *: <code>AWS_RESPONSE_CHECKSUM_VALIDATION</code> <br> <syntaxhighlight lang="ini"> [default] response_checksum_validation = when_supported </syntaxhighlight> <br> ==== sigv4a_signing_region_set ==== SigV4aを使用して署名する際に使用するリージョンをカンマ区切りで指定する。<br> <br> * 環境変数 *: <code>AWS_SIGV4A_SIGNING_REGION_SET</code> <br> <syntaxhighlight lang="ini"> [default] sigv4a_signing_region_set = us-west-2, us-east-1 </syntaxhighlight> <br> 設定しない場合、AWSサービスのデフォルトが使用される。<br> <br> ==== api_versions ==== 特定のAWSサービスで使用するAPIバージョンを指定する。<br> ネストされた設定として記述する。<br> <br> <syntaxhighlight lang="ini"> [profile specific-api] api_versions = ec2 = 2015-03-01 cloudfront = 2015-09-17 dynamodb = 2012-08-10 </syntaxhighlight> <br> 後方互換性を維持する必要がある場合に使用する。<br> <br> ==== sdk_ua_app_id ==== AWSサービスへの呼び出しを行ったソースアプリケーションを識別するアプリケーションIDを指定する。<br> <br> * 最大長 *: 50文字 * 使用可能文字 *: 英数字と <code>! $ % & * + - . , ^ _ ` | ~</code> * 環境変数 *: <code>AWS_SDK_UA_APP_ID</code> <br> <syntaxhighlight lang="ini"> [default] sdk_ua_app_id = myapp-prod </syntaxhighlight> <br> 運用通知等でアプリケーションを識別するために使用される。<br> <br> ==== addressing_style ==== S3エンドポイントのアドレス指定スタイルを指定する。<br> <br> * 有効な値 *: <code>path</code>、<code>virtual</code>、<code>auto</code> * デフォルト *: <code>auto</code> <br> <syntaxhighlight lang="ini"> [default] s3 = addressing_style = path </syntaxhighlight> <br> 各スタイルの説明<br> * <code>path</code> *: パススタイル *: 例 : https://s3.amazonaws.com/bucketname/key * <code>virtual</code> *: 仮想ホストスタイル *: 例 : https://bucketname.s3.amazonaws.com/key * <code>auto</code> *: 自動選択 *: 可能な限り仮想ホストスタイルを使用 <br> ==== payload_signing_enabled ==== S3リクエストに対してSHA256ペイロード署名を実行するかどうかを指定する。<br> <br> * 有効な値 *: <code>true</code>、<code>false</code> * デフォルト *: ストリーミングアップロード時は、<code>false</code> <br> <syntaxhighlight lang="ini"> [default] s3 = payload_signing_enabled = false </syntaxhighlight> <br> 無効化するとパフォーマンスオーバーヘッドを削減できる。<br> <br> ==== use_accelerate_endpoint ==== 全ての <code>s3</code> および <code>s3api</code> コマンドでAmazon S3 Transfer Accelerationエンドポイントを使用するかどうかを指定する。<br> <br> * 有効な値 *: <code>true</code>、<code>false</code> * デフォルト *: <code>false</code> * 制約 *: <code>use_dualstack_endpoint</code> と相互排他 <br> <syntaxhighlight lang="ini"> [default] s3 = use_accelerate_endpoint = true </syntaxhighlight> <br> バケットでTransfer Accelerationが有効化されている必要がある。<br> <br> ==== max_concurrent_requests ==== 同時に実行できる最大リクエスト数を指定する。<br> <br> * デフォルト *: 10 <br> <syntaxhighlight lang="ini"> [default] s3 = max_concurrent_requests = 20 </syntaxhighlight> <br> 値を増やすと転送速度が向上する可能性がある。<br> 値を減らすとシステムリソースの消費を抑えられる。<br> <br> ==== max_queue_size ==== タスクキューの最大サイズを指定する。<br> <br> * デフォルト *: 1000 <br> <syntaxhighlight lang="ini"> [default] s3 = max_queue_size = 10000 </syntaxhighlight> <br> 値を増やすとより多くのタスクを先読みできるが、メモリ使用量が増加する。<br> <br> ==== multipart_threshold ==== マルチパート転送を使用するファイルサイズの閾値を指定する。<br> <br> * デフォルト *: 8MB * 形式 *: 数値または数値+サフィックス (KB、MB、GB、TB) <br> <syntaxhighlight lang="ini"> [default] s3 = multipart_threshold = 64MB </syntaxhighlight> <br> ==== multipart_chunksize ==== マルチパート転送時の個別ファイルのチャンクサイズを指定する。<br> <br> * デフォルト *: 8MB * 最小 *: 5MB <br> <syntaxhighlight lang="ini"> [default] s3 = multipart_chunksize = 16MB </syntaxhighlight> <br> ==== max_bandwidth ==== S3との間でデータをアップロード・ダウンロードする際に消費できる最大帯域幅を指定する。<br> <br> * デフォルト *: 無制限 * 形式 *: 整数 (バイト/秒)または整数+サフィックス (KB/s、MB/s、GB/s) <br> <syntaxhighlight lang="ini"> [default] s3 = max_bandwidth = 50MB/s </syntaxhighlight> <br> 帯域幅を制限したい場合に使用する。<br> <br> ==== preferred_transfer_client ==== S3ファイル転送に使用する転送クライアントを指定する。<br> <br> * 有効な値 *: <code>auto</code>、<code>classic</code>、<code>crt</code> * デフォルト *: <code>auto</code> <br> <syntaxhighlight lang="ini"> [default] s3 = preferred_transfer_client = crt </syntaxhighlight> <br> 各クライアントの説明を以下に示す。<br> * <code>auto</code> *: 条件に応じて自動選択 *: 可能な場合は、<code>crt</code> を使用 * <code>classic</code> *: Python組み込み転送クライアント *: 全ての機能をサポート * <code>crt</code> *: AWS Common Runtime (CRT) 転送クライアント *: C言語ベースで高速 *: 一部機能制限あり (S3間コピー等) <br><br> == トラブルシューティング == ==== 設定ファイルが認識されない ==== * 原因 *: ファイルの場所が間違っている。 *: ファイルのパーミッションが不適切。 * 解決方法 *: ファイルの場所を確認する。(~/.aws/config) *: 環境変数 <code>AWS_CONFIG_FILE</code> を確認する。 *: パーミッションを確認する。(600 または 644 を推奨) <br> <syntaxhighlight lang="sh"> # ファイルの存在確認 ls -la ~/.aws/config # パーミッション修正 chmod 600 ~/.aws/config </syntaxhighlight> <br> ==== プロファイルが見つからない ==== * 原因 *: プロファイル名が間違っている。 *: configファイルの構文エラー * 解決方法 *: プロファイル一覧を確認する。 *: configファイルの構文を確認する。 <br> <syntaxhighlight lang="sh"> # プロファイル一覧 aws configure list-profiles # 特定プロファイルの確認 aws configure list --profile production </syntaxhighlight> <br> ==== 認証エラー ==== * 原因 *: 認証情報が間違っている。 *: 認証情報の有効期限切れ。 *: IAMロールの権限不足 * 解決方法 *: 認証情報を確認する。 *: 一時認証情報の場合は再取得する。 *: IAMポリシーを確認する。 <br> <syntaxhighlight lang="sh"> # 現在の認証情報確認 aws sts get-caller-identity # SSO再ログイン aws sso login --profile production </syntaxhighlight> <br> ==== ロール引き受けエラー ==== * 原因 *: 信頼関係が設定されていない。 *: <code>source_profile</code> の認証情報が無効 *: MFAが設定されているが提供されていない。 * 解決方法 *: IAMロールの信頼関係を確認する。 *: ソースプロファイルの認証情報を確認する。 *: MFA設定を確認する。 <br> ==== SSOログインエラー ==== * 原因 *: SSOセッションの有効期限切れ *: <code>sso_start_url</code> が間違っている。 *: ネットワーク接続の問題 * 解決方法 *: 再ログインする。 *: SSO設定を確認する。 *: ネットワーク接続を確認する。 <br> <syntaxhighlight lang="sh"> # SSOログイン aws sso login --profile dev # SSOセッション確認 cat ~/.aws/sso/cache/*.json </syntaxhighlight> <br> ==== エンドポイント接続エラー ==== * 原因 *: カスタムエンドポイントが起動していない。 *: エンドポイントURLが間違っている。 *: ネットワーク接続の問題 * 解決方法 *: エンドポイントの起動状態を確認する。 *: URLを確認する。 *: ポート番号を確認する。 <br> <syntaxhighlight lang="sh"> # LocalStackの起動確認 curl http://localhost:4566/_localstack/health # ポート確認 netstat -an | grep 4566 </syntaxhighlight> <br><br> == ベストプラクティス == ==== セキュリティ ==== * 認証情報の分離 *: アクセスキーは <code>credentials</code> ファイルに保存 *: その他の設定は <code>config</code> ファイルに保存 * ファイルパーミッション *: <code>chmod 600 ~/.aws/credentials</code> *: <code>chmod 600 ~/.aws/config</code> * IAMロールの使用 *: 可能な限りIAMロールを使用 *: 長期認証情報の使用を避ける * SSOの活用 *: 複数アカウント管理にはSSOを使用 *: 一時認証情報による安全性向上 <br> ==== 設定管理 ==== * プロファイルの命名規則 *: 環境や用途が分かりやすい名前を使用 *: 例 : dev、staging、prod * コメントの活用 *: configファイルにコメントを記載 *: 設定の目的や注意事項を記録 * バージョン管理 *: configファイル (認証情報を除く) をGit管理 *: チームで設定を共有 <br> ==== パフォーマンス ==== * リトライ設定の最適化 *: <code>retry_mode = adaptive</code> を検討する。 *: <code>max_attempts</code> を適切に設定する。 * S3転送の最適化 *: <code>max_concurrent_requests</code> を調整する。 *: <code>multipart_threshold</code> を適切に設定する。 *: CRT転送クライアントの活用 * ページャの無効化 *: スクリプト実行時は <code>cli_pager</code> を無効化する。 <br> ==== 開発環境 ==== * ローカル開発用プロファイル *: LocalStack等用の専用プロファイルを作成する。 *: エンドポイント設定を明確化する。 * 環境変数の活用 *: CI/CD環境では環境変数を使用する。 *: ローカル開発では <code>AWS_PROFILE</code> を使用する。 <br> ==== 設定例テンプレート ==== <syntaxhighlight lang="ini"> # ~/.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 </syntaxhighlight> <br><br> == 関連リンク == * [https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html AWS公式ドキュメント: Configuration and credential file settings] * [https://docs.aws.amazon.com/cli/latest/topic/config-vars.html AWS公式ドキュメント: Configuration Variables] * [https://docs.aws.amazon.com/cli/latest/topic/s3-config.html AWS公式ドキュメント: S3 Configuration] * [https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html AWS公式ドキュメント: IAM Identity Center authentication] <br><br> __FORCETOC__ [[カテゴリ:Web]]
AWS CLI - 設定ファイル
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse