設定ファイルと認証情報ファイルの設定 - AWS Command Line Interface

設定ファイルと認証情報ファイルの設定

頻繁に利用される構成設定および認証情報を AWS CLI が維持するファイルに保存することができます。

ファイルは profiles に分割されます。デフォルトでは、CLI は default という名前のプロファイルにある設定を使用します。替わりの設定を使用するには、追加のプロファイルを作成して参照できます。プロファイルの詳細については、「名前付きプロファイル」を参照してください。

サポートされた環境変数のいずれかの設定を使用するか、あるいはコマンドラインパラメータを使用して、個別の設定を上書きすることもできます。構成設定の優先順位の詳細については、「構成設定と優先順位」を参照してください。

構成設定はどこに保存されていますか。

AWS CLI は aws configure で指定された機密性の高い認証情報を、ホームディレクトリの .aws という名前のフォルダにある credentials という名前のローカルファイルに保存します。aws configure で指定された機密性の低い設定オプションは、config という名前のローカルファイルに保存されるだけでなく、ホームディレクトリの .aws フォルダにも保存されます。

認証情報を設定ファイルに保存する

AWS CLI は config ファイルから認証情報を読み取ることができるので、すべてのプロファイル設定を 1 つのファイルに保持できます。同じ名前を共有するプロファイルの両方のファイルに認証情報がある場合、認証情報ファイルのキーが優先されます。

また、これらのファイルはさまざまな言語ソフトウェア開発キット (SDK) によっても使用されます。AWS CLI に加えて SDK のいずれかを使用する場合は、認証情報を独自のファイルに保存する必要があるかどうかを確認します。

ホームディレクトリの場所はオペレーティングシステムによって異なりますが、環境変数 %UserProfile% (Windows の場合) および $HOME またはチルド ~ (Unix ベースのシステムの場合) を使用して参照されます。AWS_CONFIG_FILE 環境変数を別のローカルパスに設定することで、config ファイルの場所をデフォルト以外の場所に指定できます。詳細については、「AWS CLI を設定する環境変数」を参照してください。

たとえば、aws configure で設定されたデフォルトプロファイルの CLI によって生成されたファイルは、次のようになります。

~/.aws/credentials

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

~/.aws/config

[default] region=us-west-2 output=json

複数の名前付きプロファイルを含むファイルの例については、「名前付きプロファイル」を参照してください。

AWS Identity and Access Management (IAM) ロールを指定する共有プロファイルを使用すると、AWS CLI は、AWS STS AssumeRole オペレーションを呼び出して一時的な認証情報を取得します。その後、これらの認証情報は ~/.aws/cli/cache に保存されます。それ以降の AWS CLI コマンドは、このキャッシュされた一時的な認証情報を有効期限が切れるまで使用します。有効期限が切れると、そこで AWS CLI によって自動的に認証情報が更新されます。

構成設定の設定および表示

ファイルの構成設定を表示および設定する方法は複数あります。

認証情報および設定ファイル

テキストエディタで config ファイルおよび credentials ファイルを直接編集して、設定を表示および編集します。詳細については、「構成設定はどこに保存されていますか。」を参照してください。

設定を削除するには、credentials ファイルおよび config ファイルの対応する設定を削除します。

aws configure

このコマンドを実行すると、認証情報、リージョン、出力形式をすばやく設定および表示できます。次の例は、サンプル値を示しています。

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

詳細については、「aws configure を使用したクイック設定」を参照してください。

aws configure set

aws configure set を使用して、任意の認証情報または構成設定を設定できます。--profile 設定で表示または変更するプロファイルを指定します。

たとえば、次のコマンドは integ という名前のプロファイル内の region を設定します。

$ aws configure set region us-west-2 --profile integ

設定を削除するには、値として空の文字列を使用するか、テキストエディタで config ファイルおよび credentials ファイルの設定を手動で削除します。

$ aws configure set cli_pager "" --profile integ
aws configure get

aws configure get を使用して設定した認証情報または構成設定を取得できます。--profile 設定で表示または変更するプロファイルを指定します。

たとえば、次のコマンドは integ という名前のプロファイル内の region 設定を取得します。

$ aws configure get region --profile integ us-west-2

出力が空の場合にはその設定は明示的に構成されず、デフォルトの値が使用されます。

aws configure import
この機能は、AWS CLI バージョン 2 でのみ使用できます。

次の機能は、AWS CLI バージョン 2 を使用している場合にのみ有効です。AWS CLI バージョン 1 を使用している場合には無効です。バージョン 2 をインストールする方法の詳細については、「AWS CLI バージョン 2 のインストール、更新、アンインストール」を参照してください。

AWS ウェブコンソールから生成された CSV 認証情報をインポートします。IAM ユーザー名と一致するプロファイル名を持つ CSV ファイルがインポートされます。

$ aws configure import –csv file://credentials.csv
aws configure list

すべての設定データを一覧表示するには、aws configure list コマンドを使用します。このコマンドは、設定したすべての設定の AWS CLIの 名前、その値、および設定を取得した場所を表示します。

$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************ABCD shared-credentials-file secret_key ****************ABCD shared-credentials-file region us-west-2 env AWS_DEFAULT_REGION
aws configure list-profiles
この機能は、AWS CLI バージョン 2 でのみ使用できます。

次の機能は、AWS CLI バージョン 2 を使用している場合にのみ有効です。AWS CLI バージョン 1 を使用している場合には無効です。バージョン 2 をインストールする方法の詳細については、「AWS CLI バージョン 2 のインストール、更新、アンインストール」を参照してください。

すべてのプロファイル名を一覧表示するには、aws configure list-profiles コマンドを使用します。

$ aws configure list-profiles default test

サポートされる config ファイル設定

config ファイルでは、以下の設定がサポートされます。同名の環境変数があること、または同名のコマンドラインオプションによって上書きされる場合を除き、指定された (またはデフォルトの) プロファイルにリストされる値が使用されます。優先する順序設定の詳細については、「構成設定と優先順位」を参照してください。

[Global settings (グローバル設定)]

api_versions

一部の AWS サービスでは、下位互換性をサポートするために複数の API バージョンを維持します。デフォルトでは、CLI コマンドは最新の API バージョンを使用します。config ファイル内の api_versions 設定に含むプロファイルに使用する API ファイルを指定することができます。

これは、それぞれが使用する AWS サービスと使用する API バージョンを識別する 1 つ以上のインデントされた行に適用される「ネストされた」設定です。どの API バージョンが利用可能を判断するには、各サービスのドキュメントを参照してください。

次の例は、2 つの AWS サービスに API バージョンを指定する方法を示しています。これらの API バージョンは、この設定を含むプロファイルで実行するコマンドにのみ使用されます。

api_versions = ec2 = 2015-03-01 cloudfront = 2015-09-017

この設定には、環境変数やコマンドラインパラメータに相当するものはありません。

aws_access_key_id

コマンドリクエストを認証するための認証情報の一部として使用する AWS アクセスキーを指定します。これを config ファイルに保存することもできますが、credentials ファイルに保存することが推奨されます。

AWS_ACCESS_KEY_ID 環境変数で上書きすることができます。アクセスキー ID をコマンドラインオプションとして指定することはできません。

aws_access_key_id = 123456789012
aws_secret_access_key

コマンドリクエストを認証するための認証情報の一部として使用する AWS シークレットキーを指定します。これを config ファイルに保存することもできますが、credentials ファイルに保存することが推奨されます。

AWS_SECRET_ACCESS_KEY 環境変数で上書きすることができます。シークレットアクセスキーをコマンドラインオプションとして指定することはできません。

aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token

AWS セッショントークンを指定します。セッショントークンは、一時的なセキュリティ認証情報を手動で指定する場合にのみ必要です。これを config ファイルに保存することもできますが、credentials ファイルに保存することが推奨されます。

AWS_SESSION_TOKEN 環境変数で上書きすることができます。セッショントークンをコマンドラインオプションとして指定することはできません。

aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
ca_bundle

SSL 証明書を検証するために使用される CA 証明書バンドル (.pem 拡張子があるファイル) を指定します。

AWS_CA_BUNDLE 環境変数あるいは --ca-bundle コマンドラインオプションで上書きできます。

ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem
cli_binary_format
この機能は、AWS CLI バージョン 2 でのみ使用できます。

次の機能は、AWS CLI バージョン 2 を使用している場合にのみ有効です。AWS CLI バージョン 1 を使用している場合には無効です。バージョン 2 をインストールする方法の詳細については、「AWS CLI バージョン 2 のインストール、更新、アンインストール」を参照してください。

AWS CLI バージョン 2 がバイナリ入力パラメータを解釈する方法を指定します。これには、次のいずれかの値を指定できます。

  • base64 – これはデフォルト値です。バイナリラージオブジェクト (BLOB) として型指定された入力パラメータは、base64 でエンコードされた文字列を受け入れます。真のバイナリコンテンツを渡すには、コンテンツをファイルに置き、ファイルのパスと名前をパラメータの値として fileb:// プレフィックスを付けて指定します。ファイルに含まれる base64 エンコードされたテキストを渡すには、ファイルのパスと名前をパラメータの値として file:// プレフィックスを付けて指定します。

  • raw-in-base64 out – バイナリ値を逐語的に渡さなければならない AWS CLI バージョン 1 動作との下位互換性を提供します。

このエントリには、同等の環境変数はありません。--cli-binary-format raw-in-base64-out パラメータを使用すると、1 つのコマンドで値を指定できます。

cli_binary_format = raw-in-base64-out

fileb:// プレフィックス表記を使用してファイル内のバイナリ値を参照する場合、AWS CLI は 常にファイルに raw バイナリコンテンツが含まれていることを想定し、値の変換は試行しません。

file:// プレフィックス表記を使用してファイル内のバイナリ値を参照する場合、AWS CLI は現在の cli_binary_format 設定に従ってファイルを処理します。その設定の値が base64 (明示的に設定されていない場合のデフォルト) の場合、CLI はファイルに base64 エンコードされたテキストが含まれていることを想定します。設定の値が raw-in-base64-out の場合、CLI はファイルに raw バイナリコンテンツが含まれていることを想定します。

cli_follow_urlparam
この機能は、AWS CLI バージョン 1 でのみ使用できます。

次の機能は、AWS CLI バージョン 1 を使用している場合にのみ有効です。AWS CLI バージョン 2 を使用している場合には無効です。

CLI が http:// あるいは https:// で始まるコマンドラインパラメータの URL リンクに従うことを試行するかどうかを指定します。これを有効にすると、取得されたコンテンツは URL の代わりにパラメータ値として使用されます。

  • true – これはデフォルト値です。指定すると、http:// または https:// で始まるすべての文字列パラメータが取得され、ダウンロードされたすべてのコンテンツはコマンドのパラメータ値として使用されます。

  • false – 指定すると、CLI は http:// または https:// で始まるパラメータ文字列値を他の文字列と区別して扱いません。

このエントリには同等の環境変数あるいはコマンドラインオプションがありません。

cli_follow_urlparam = false
cli_pager
この機能は、AWS CLI バージョン 2 でのみ使用できます。

次の機能は、AWS CLI バージョン 2 を使用している場合にのみ有効です。AWS CLI バージョン 1 を使用している場合には無効です。バージョン 2 をインストールする方法の詳細については、「AWS CLI バージョン 2 のインストール、更新、アンインストール」を参照してください。

出力に使用されるページャープログラムを指定します。デフォルトでは、AWS CLI バージョン 2 はオペレーティングシステムのデフォルトのページャープログラムを介してすべての出力を返します。

AWS_PAGER 環境変数によって上書きできます。

cli_pager=less

外部ページングプログラムの使用をすべて無効にするには、以下の例に示すように変数を空の文字列に設定します。

cli_pager=
cli_timestamp_format

出力に含まれるタイムスタンプの形式を指定します。次の値のいずれかを指定できます。

  • iso8601 – AWS CLI バージョン 2 のデフォルト値。指定すると、AWS CLI は、ISO 8601 に従ってすべてのタイムスタンプを再フォーマットします。

  • wire – AWS CLI バージョン 1 のデフォルト値。指定すると、AWS CLI は、HTTP クエリレスポンスで受信したとおりにすべてのタイムスタンプ値を表示します。

このエントリには同等の環境変数あるいはコマンドラインオプションがありません。

cli_timestamp_format = iso8601
credential_process

このコマンドで使用するための認証情報を生成あるいは取得する目的で CLI が実行する外部のコマンドを指定します。このコマンドは、特定の形式で認証情報を返す必要があります。この設定を使用する方法の詳細については、「外部プロセスを使用した認証情報の調達」を参照してください。

このエントリには同等の環境変数あるいはコマンドラインオプションがありません。

credential_process = /opt/bin/awscreds-retriever --username susan
credential_source

Amazon EC2 インスタンスまたは EC2 コンテナ内で使用され、role_arn パラメータで指定したロールを引き受けるために使用する認証情報を AWS CLI が見つけられる場所を指定します。source_profilecredential_source の両方を同じプロファイルで指定することはできません。

このパラメータには、次の 3 つの値のいずれかを指定できます。

  • 環境 – AWS CLI が環境変数からソース認証情報を習得することを指定します。

  • Ec2InstanceMetadata – AWS CLI が、EC2 インスタンスプロファイルにアタッチされた IAM ロールを使用してソース認証情報を取得することを指定します。

  • EcsContainer – AWS CLI が、ECS コンテナにアタッチされた IAM ロールをソース認証情報として使用することを指定します。

credential_source = Ec2InstanceMetadata
duration_seconds

ロールセッションの最大期間を秒単位で指定します。この値は 900 秒 (15 分) からロールの最大セッション期間設定 (上限は 43200) までの範囲を指定できます。これはオプションのパラメータであり、デフォルトでは 3600 秒に設定されています。

external_id

お客様のアカウントでサードパーティーがロールを引き受けるために使用される独自の識別子を指定します。これは ExternalId オペレーションの AssumeRole パラメータにマップします。このパラメータは、ロールの信頼ポリシーで ExternalId の値が指定されている場合にのみ必要です。詳細については、IAM ユーザーガイドの「AWS リソースへのアクセス権を第三者に付与するときに外部ゲートウェイを使用する方法」を参照してください。

mfa_serial

ロールを引き受けるときに使用する MFA デバイスの ID 番号。これは、引き受けるロールの信頼ポリシーに MFA 認証を必要とする条件が含まれている場合にのみ必須です。値には、ハードウェアデバイスのシリアルナンバー (GAHT12345678 など) または仮想 MFA デバイスの Amazon リソースネーム (ARN) (arn:aws:iam::123456789012:mfa/user など)のいずれかを指定できます。

output

このプロファイルを使用してリクエストするコマンドのデフォルトの出力形式を指定します。次の値のいずれかを指定できます。

  • jsonJSON 文字列形式で出力されます。

  • yamlYAML 文字列形式で出力されます。(AWS CLI バージョン 2 でのみ利用できます。)

  • yaml-stream – 出力はストリーミングされ、YAML 文字列としてフォーマットされます。ストリーミングにより、大きなデータ型の処理を高速化できます。(AWS CLI バージョン 2 でのみ利用できます。)

  • text – 複数行のタブ区切り文字列値の形式で出力されます。これは、grepsed、または awk などのテキストプロセッサに出力を渡すのに役立ちます。

  • table – セルの罫線を形成する文字列 +|- を使用して表形式で出力されます。通常、情報は他の形式よりも読みやすい「わかりやすい」形式で表示されますが、プログラムとしては役立ちません。

AWS_DEFAULT_OUTPUT 環境変数あるいは --output コマンドラインオプションで上書きできます。

output = table
parameter_validation

AWS サービスエンドポイントに送信する前に、AWS CLI クライアントがパラメータの検証を試行するかどうかを指定します。

  • true – これはデフォルト値です。設定すると、CLI はコマンドラインパラメータのローカル検証を実行します。

  • false AWS 指定すると、CLI は – サービスエンドポイントに送信する前に、コマンドラインパラメータを検証しません。

このエントリには同等の環境変数あるいはコマンドラインオプションがありません。

parameter_validation = false
region

このプロファイルを使用してリクエストされたコマンドへのリクエストを送信するための AWS リージョンを指定します。

  • アマゾン ウェブ サービス全般のリファレンスの「AWS のリージョンとエンドポイント」にリストされるように、選択されたサービスに使用できるリージョンコードのいずれかを指定できます。

  • aws_global を使用して、AWS Security Token Service (AWS STS) や Amazon Simple Storage Service (Amazon S3) など、リージョンのエンドポイントに加えて、グローバルエンドポイントをサポートするサービスのグローバルエンドポイントを指定できます。

AWS_DEFAULT_REGION 環境変数または --region コマンドラインオプションを使用して、この値を上書きできます。

region = us-west-2
role_arn

AWS CLI コマンドの実行に使用する IAM ロールの Amazon リソースネーム (ARN) を指定します。また、以下のいずれかのパラメータを指定して、このロールを引き受けるアクセス権限を持つ認証情報を特定する必要があります。

  • source_profile

  • credential_source

role_arn = arn:aws:iam::123456789012:role/role-name
role_session_name

ロールセッションにアタッチする名前を指定します。この値は、AWS CLI が AssumeRole オペレーションを呼び出す場合に RoleSessionName パラメータに提供され、引き受けたロールユーザー ARN arn:aws:sts::123456789012:assumed-role/role_name/role_session_name の一部になります。このパラメータはオプションです。この値を指定しない場合、セッション名は自動的に生成されます。この名前は、このセッションに関連付けられたエントリの AWS CloudTrail ログに表示されます。

role_session_name = maria_garcia_role
source_profile

role_arn パラメータで指定したロールを引き受けるために AWS CLI が使用できる、長期的な認証情報を持つ名前付きプロファイルを指定します。source_profilecredential_source の両方を同じプロファイルで指定することはできません。

source_profile = production-profile
sso_account_id (AWS CLI バージョン 2 でのみ利用できます。)

関連付けられた IAM ユーザーに付与するアクセス権限を持つ AWS ロールを含む AWS SSO アカウント ID を指定します。

この設定には、環境変数またはコマンドラインオプションはありません。

sso_account_id = 123456789012
sso_region (AWS CLI バージョン 2 でのみ利用できます。)

AWS SSO ポータルホストを含む AWS リージョンを指定します。これはデフォルトの CLI region パラメータとは別で、異なるリージョンにすることができます。

この設定には、環境変数またはコマンドラインオプションはありません。

aws_sso_region = us_west-2
sso_role_name (AWS CLI バージョン 2 でのみ利用できます。)

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

この設定には、環境変数またはコマンドラインオプションはありません。

sso_role_name = ReadAccess
sso_start_url (AWS CLI バージョン 2 でのみ利用できます。)

組織の AWS SSO ユーザーポータルを指す URL を指定します。AWS CLI は、この URL を使用して、AWS SSO サービスとのセッションを確立し、ユーザーを認証します。

この設定には、環境変数またはコマンドラインオプションはありません。

sso_start_url = https://my-sso-portal.awsapps.com/start
sts_regional_endpoints

AWS CLI クライアントが AWS Security Token Service (AWS STS) と通信するために使用する AWS サービスエンドポイントを AWS CLI が判別する方法を指定します。

  • AWS CLI バージョン 1 のデフォルト値は legacy です。

  • AWS CLI バージョン 2 のデフォルト値は regional です。

次の 2 つの値のいずれかを指定できます。

  • legacy – 以下の AWS リージョンについては、グローバル STS エンドポイント sts.amazonaws.com を使用します: ap-northeast-1ap-south-1ap-southeast-1ap-southeast-2aws-globalca-central-1eu-central-1eu-north-1eu-west-1eu-west-2eu-west-3sa-east-1us-east-1us-east-2us-west-1、および us-west-2。他のすべてのリージョンでは、それぞれのリージョンエンドポイントが自動的に使用されます。

  • regional – AWS CLI は、常に現在設定されているリージョンの AWS STS エンドポイントを使用します。たとえば、クライアントが us-west-2 を使用するように設定されている場合、AWS STS へのすべてのコールは、グローバル sts.amazonaws.com エンドポイントではなく、リージョナルエンドポイント sts.us-west-2.amazonaws.com に対して行われます。この設定が有効なときにグローバルエンドポイントにリクエストを送信するには、リージョンを aws-global に設定します。

この設定は、AWS_STS_REGIONAL_ENDPOINTS 環境変数を使用して上書きできます。この値をコマンドラインパラメータとして設定することはできません。

web_identity_token_file

OAuth 2.0 アクセストークンまたは ID プロバイダーによって提供される OpenID Connect ID トークンを含むファイルへのパスを指定します。AWS CLI はこのファイルの内容をロードし、WebIdentityToken 引数として AssumeRoleWithWebIdentity オペレーションに渡します。

tcp_keepalive

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

このエントリには同等の環境変数あるいはコマンドラインオプションがありません。

tcp_keepalive = false

S3 カスタマーコマンド設定

Amazon S3 では、AWS CLI がどのように Amazon S3 オペレーションを実行するかを構成する複数の設定をサポートしています。一部は、s3api および s3 名前空間の両方のすべての S3 コマンドに適用されます。それ以外は、一般的なオペレーションを抽象化する S3 の「カスタム」コマンド専用となり、API オペレーションで 1 対 1 のマッピング以上に機能します。aws s3cpsyncmv を転送し、rm には S3 転送に使用できる追加の設定があります。

これらすべてのオプションは、config ファイル内のネストされた s3 設定を指定することで構成できます。各設定は、それぞれの行にインデントされます。

注記

これらの設定はすべてオプションです。これらの設定を一切構成せずに、aws s3 転送コマンドを正しく使用できることが必要です。これらの設定は、パフォーマンスを調整したり、上述の aws s3 コマンドを実行する特定の環境に対応したりできるように用意されています。

次の設定は、s3 あるいは s3api 名前空間内の任意の S3 コマンドに適用されます。

addressing_style

使用するアドレス形式を指定します。バケット名がホスト名にあるか、または URL の一部にあるかを制御します。有効な値は、pathvirtualauto です。デフォルト値は auto です。

S3 エンドポイントを構成するには 2 つのスタイルがあります。1 つ目は virtual と呼ばれ、ホスト名の一部としてバケット名が含まれています。例: https://bucketname.s3.amazonaws.com。また、path スタイルでは、バケット名を URI 内のパスとして扱います (例: https://s3.amazonaws.com/bucketname)。CLI におけるデフォルト値では、できる範囲では virtual スタイルを使用し、必要に応じて path に戻る auto を使用します。たとえば、バケット名に DNS との互換性がない場合い、このバケット名はホスト名の一部にならず、パス内にする必要があります。auto を使用すると、CLI はこの条件を検出し、ユーザーに代わって自動的に path に切り替えます。アドレス形式を path に設定する場合、AWS CLI で設定した AWS リージョンがバケットのリージョンと一致していることを確認する必要があります。

payload_signing_enabled

SHA256 が sigv4 ペイロードを署名するかどうかを指定します。デフォルトでは、HTTPS 使用時のストリーミングアップロード (UploadPart および PutObject) にはこれが無効化されています。デフォルトでは、ContentMD5 があり (デフォルトで生成されます)、エンドポイントが HTTPS を使用する場合にのみ、これはストリーミングアップロード (UploadPart および PutObject) 用に false に設定されます。

true に設定すると、S3 は SHA256 チェックサム形式 (自動的に計算されてリクエスト署名に追加) で追加のコンテンツ検証の受信をリクエストします。false に設定すると、チェックサムは計算されません。これを無効にすると、チェックサム計算によって生じるパフォーマンスのオーバーヘッドの減少に役立ちます。

use_dualstack_endpoint

すべての s3 および s3api コマンドに Amazon S3 デュアル IPv4 / IPv6 エンドポイントを使用します。デフォルト値は false です。これは use_accelerate_endpoint 設定と相互に排他的となります。

true に設定すると、AWS CLI はすべての Amazon S3 リクエストを設定されているリージョンのデュアル IPv4/IPv6 エンドポイントに送信します。

use_accelerate_endpoint

すべての s3 および s3api コマンドに Amazon S3 高速化エンドポイントを使用します。デフォルト値は false です。これは use_dualstack_endpoint 設定と相互に排他的となります。

true に設定すると、AWS CLI はすべての Amazon S3 リクエストを s3-accelerate.amazonaws.comS3 Accelerate エンドポイントに送信します。このエンドポイントを使用するには、S3 Accelerate を使用するようにバケットを有効化する必要があります。リクエストはすべて、仮想形式のバケットのアドレス指定 (my-bucket.s3-accelerate.amazonaws.com) を使用して送信されます。いずれの ListBucketsCreateBucketDeleteBucket リクエストも、S3 高速化エンドポイントには送信されません。高速化エンドポイントでは、これらのオペレーションをサポートしていないためです。また、s3 または s3api コマンドのいずれかに --endpoint-url パラメータが https://s3-accelerate.amazonaws.com あるいは http://s3-accelerate.amazonaws.com に設定されている場合には、この動作を実行できます。

以下の設定は、s3 名前空間コマンドセット内のコマンドのみに適用されます。

max_bandwidth

Amazon S3 との間でアップロードおよびダウンロードするデータ用に消費する最大の帯域幅を指定します。デフォルトは無制限です。

これによって、S3 コマンドが Amazon S3 との間でデータの転送に使用できる最大の帯域幅が制限されます。この値は、アップロードとダウンロードのみに適用され、コピーや削除には適用されません。この値は 1 秒あたりのバイト数で示されます。この値は次のように指定できます。

  • 整数。たとえば、1048576 は 1 秒あたりの 1 メガバイトの最大帯域幅使用を設定します。

  • 整数に続くレートサフィックス。KB/sMB/s、あるいは GB/s を使用して、レートサフィックスを指定できます。たとえば、300KB/s10MB/s などです。

一般的には、まず、max_concurrent_requests を低くして、低い帯域幅の消費を試してみることが推奨されます。必要なレートの帯域幅消費を十分に制限できない場合には、max_bandwidth 設定を使用して、さらに帯域幅消費を制限できます。これは、max_concurrent_requests が現在実行中のスレッド数を制御できるためです。代わりに、まず max_bandwidth を低くしながら max_concurrent_requests 設定を高くすると、スレッドが不必要に待機する結果が生じることがあります。これにより、余分なリソースの消費と接続タイムアウトにつながる可能性があります。

max_concurrent_requests

同時リクエストの最大数を指定します。デフォルト値は 10 です。

aws s3 転送コマンドはマルチスレッドです。どの時点でも、複数の Amazon S3 リクエストを実行することができます。たとえば、コマンド aws s3 cp localdir s3://bucket/ --recursive を使用して S3 バケットにファイルをアップロードする場合、AWS CLI は localdir/file1localdir/file2localdir/file3 ファイルを並行してアップロードできます。max_concurrent_requests の設定は、同時に実行できる転送オペレーションの最大数を指定します。

この値を変更する必要には、いくつかの理由が考えられます。

  • この値を小さくする – 一部の環境では、デフォルトである 10 個の同時リクエストはシステムをひっ迫することがあります。これによって接続タイムアウトやシステムの応答性の低下が見られる場合があります。この値を小さくすると、S3 転送コマンドのリソース消費が減少します。その代わり、S3 転送の完了により長くかかる可能性があります。帯域幅を制限するツールを使用する場合、この値を低めに抑える必要が生じることがあります。

  • この値を大きくする – シナリオによっては、必要に応じた帯域幅を使用して S3 転送をできる限り迅速に完了する場合があります。このシナリオでは、利用できるすべてのネットワーク帯域幅を使用するためにデフォルトの同時リクエスト数が十分でないことがあります。この値を大きくすると、S3 転送が完了する時間を短縮できます。

max_queue_size

タスクキューのタスクの最大数を指定します。デフォルト値は 1000 です。

AWS CLI は、max_concurrent_requests によって数が制限されるコンシューマーによって実行される Amazon S3 タスクをキューに入れるモデルを内部で使用します。タスクは通常の場合、単一の S3 オペレーションをマッピングします。たとえば、タスクは PutObjectTaskGetObjectTask、または UploadPartTask にできます。タスクがキューに追加される率は、コンシューマーがタスクを終了する率よりも早くなることがあります。無限の拡大を回避するには、タスクキューのサイズを指定するサイズに抑えます。この設定は、タスクキューの最大数値を変更します。

一般的には、この設定を変更する必要はありません。また、この設定は、CLI が上述の必要性を実行することを認識しているタスクの数に該当します。つまり、デフォルトでは CLI は今後の 1000 個のタスクのみを認識できます。この値を大きくすると、CLI は必要なタスクの合計数をより早く認識でき、クエリ率がタスクの完了率よりもさらに高速になると想定されます。その代わり、より大きな max_queue_size はより多くのメモリを必要とします。

multipart_chunksize

個別ファイルのマルチパート転送用に AWS CLI が使用するチャンクのサイズを指定します。デフォルト値は 8 MB、最小は 5 MB です。

ファイル転送が multipart_threshold を超えると、CLI はファイルをこのサイズのチャンクに分割します。multipart_threshold と同じ構文をバイト数あるいは整数として使用するか、またはサイズとサフィックスを使用して、この値を指定することができます。

multipart_threshold

個別ファイルのマルチパート転送用に AWS CLI が使用するしきい値のサイズを指定します。デフォルト値は 8 MB です。

ファイルのアップロード、ダウンロードやコピーを行うとき、S3 コマンドは、ファイルがこのサイズを超える場合に、マルチパートオペレーションに切り替わります。この値は、次の 2 つのいずれかに指定します。

  • ファイルサイズ (バイト単位)。たとえば、1048576 と指定します。

  • サイズのサフィックスを使用したファイルサイズ。KBMBGB、あるいは TB を使用できます。例: 10MB1GB

    注記

    S3 は、マルチパートオペレーションに使用できる有効値に制約を課すことができます。詳細については、『Amazon Simple Storage Service 開発者ガイド』の「S3 マルチパートアップロードのドキュメント」を参照してください。

次の development プロファイルの例に示すように、これらの設定はすべて、config ファイルの上位レベル s3 キーで設定します。

[profile development] s3 = max_concurrent_requests = 20 max_queue_size = 10000 multipart_threshold = 64MB multipart_chunksize = 16MB max_bandwidth = 50MB/s use_accelerate_endpoint = true addressing_style = path