中的組態和憑證檔案設定 AWS CLI - AWS Command Line Interface

本文件 AWS CLI 僅適用於 的第 1 版。如需與 第 2 版相關的文件 AWS CLI,請參閱 第 2 版使用者指南

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

中的組態和憑證檔案設定 AWS CLI

您可以將常用的組態設定和憑證儲存在 AWS CLI維護的檔案中。

這些文件被分為 profiles。根據預設, AWS CLI 會使用名為 的設定檔中找到的設定default。若要使用替代設定,您可以建立和參考額外的描述檔。

您可以設定其中一個支援的環境變數,或使用命令列參數,以覆寫個別設定。如需組態設定優先順序的詳細資訊,請參閱 設定 的設定 AWS CLI

注意

如需設定憑證的相關資訊,請參閱 的身分驗證和存取憑證 AWS CLI

組態和憑證檔案的格式

configcredentials 檔案會組織成區段。區段包括設定檔服務。區段是具名的設定集合,且會持續到發生其他區段定義列為止。許多設定檔和區段可以儲存於 configcredentials 檔案。

這些檔案是使用下列格式的純文字檔案:

  • 區段名稱會以方括號 [] 括起來,例如 [default][profile user1][sso-session]

  • 區段中的所有項目均採用 setting_name=value 的一般形式。

  • 您可以在列的開頭使用雜湊字元 (#),為列加上註解。

config 和 credentials 檔案包含下列區段類型:

區段類型:profile

AWS CLI 商店

根據檔案,設定檔區段名稱會使用下列格式:

  • 組態檔案: [default] [profile user1]

  • 憑證檔案: [default] [user1]

    credentials 檔案中建立項目時,請使用 profile 一字。

每個描述檔可以指定不同的憑證,也可以指定不同的 AWS 區域和輸出格式。為 config 檔案中的設定檔命名時,請包含前綴詞「profile」,但不要將其包含在 credentials 檔案中。

下列範例顯示 credentialsconfig 檔案,兩者皆具有兩個設定檔、區域和指定輸出。當您執行不含指定設定檔的 AWS CLI 命令時會使用第一個 [預設]。當您使用 --profile user1 參數執行 AWS CLI 命令時,會使用第二個。

Short-term credentials

此範例適用於來自 AWS Identity and Access Management的短期憑證。如需詳細資訊,請參閱使用 的短期憑證進行驗證 AWS CLI

憑證檔案

[default] aws_access_key_id=ASIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE [user1] aws_access_key_id=ASIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

組態檔案

[default] region=us-west-2 output=json [profile user1] region=us-east-1 output=text
IAM role

此範例適用於擔任 IAM角色。使用IAM角色的設定檔會從另一個設定檔提取憑證,然後套用IAM角色許可。在下列範例中,default 是憑證的來源設定檔,且 user1 借用相同憑證來擔任新角色。如需詳細資訊,請參閱在 中使用IAM角色 AWS CLI

憑證檔案

credentials 檔案取決於您的來源設定檔使用哪種身分驗證。在下列範例中,來源設定檔是使用短期憑證。

[default] aws_access_key_id=ASIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

組態檔案

[default] region=us-west-2 output=json [profile user1] role_arn=arn:aws:iam::777788889999:role/user1role source_profile=default role_session_name=session_user1 region=us-east-1 output=text
Amazon EC2 instance metadata credentials

此範例適用於從託管 Amazon EC2執行個體中繼資料取得的憑證。如需詳細資訊,請參閱使用 Amazon EC2執行個體中繼資料作為 中的憑證 AWS CLI

憑證檔案

此驗證方法不會使用 credentials 檔案。

組態檔案

[default] role_arn=arn:aws:iam::123456789012:role/defaultrole credential_source=Ec2InstanceMetadata region=us-west-2 output=json [profile user1] role_arn=arn:aws:iam::777788889999:role/user1role credential_source=Ec2InstanceMetadata region=us-east-1 output=text
Long-term credentials
警告

為了避免安全風險,開發專用軟體或使用真實資料時,請勿使用IAM使用者進行身分驗證。相反地,搭配使用聯合功能和身分提供者,例如 AWS IAM Identity Center

此範例適用於來自 AWS Identity and Access Management的長期憑證。如需詳細資訊,請參閱使用 IAM的使用者憑證進行驗證 AWS CLI

憑證檔案

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [user1] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

組態檔案

[default] region=us-west-2 output=json [profile user1] region=us-east-1 output=text

如需詳細資訊以及其他驗證和憑證方式,請參閱 使用 IAM的使用者憑證進行驗證 AWS CLI

區段類型:services

services 本節是一組設定,可設定 AWS 服務 請求的自訂端點。然後,設定檔會連結至 services 區段。

[profile dev] services = my-services

services 區段由 <SERVICE> = 列分隔成子區段,其中 <SERVICE> 是 AWS 服務 識別碼金鑰。 AWS 服務 識別符以API模型為基礎serviceId,方法是將所有空格替換為底線,並縮小所有字母大小。如需要在 services 區段中使用的所有服務識別碼金鑰的清單,請參閱 在 中使用端點 AWS CLI。服務識別碼金鑰後面接續巢狀化設定,每個設定獨佔一列並縮排兩個空格。

下列範例將端點設定為用於 中對 Amazon DynamoDB 服務提出的請求 my-services 用於 的 區段 dev 設定檔。任何緊接著縮排的列都包含在該子區段中,並適用於該服務。

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

如需服務特定端點詳細資訊,請參閱 在 中使用端點 AWS CLI

如果您的設定檔透過IAM擔任角色功能的 source_profile 參數設定角色型憑證, SDK只會使用指定設定檔的服務組態。它不會使用與其連結的角色的設定檔。例如,使用下列共用 config 檔案:

[profile A] credential_source = Ec2InstanceMetadata endpoint_url = https://profile-a-endpoint.aws/ [profile B] source_profile = A role_arn = arn:aws:iam::123456789012:role/roleB services = profileB [services profileB] ec2 = endpoint_url = https://profile-b-ec2-endpoint.aws

如果您使用設定檔B並在程式碼中呼叫 Amazon EC2,端點會解析為 https://profile-b-ec2-endpoint.aws。如果您的程式碼向任何其他服務發出要求,端點解析將不會遵循任何自訂邏輯。端點未解析為設定檔 A 中定義的全域端點。若要讓全域端點對設定檔 B 生效,您需要直接在 B 設定檔中設定 endpoint_url

組態設定存放在何處?

會將您在名為 aws configure的本機檔案中指定的敏感憑證資訊credentials, AWS CLI 儲存在主目錄中名為 .aws的資料夾中。您使用 aws configure 指定的較不敏感組態選項,則存放在名為 config 的本機檔案中,而此檔案也是存放在主目錄中的 .aws 資料夾。

將憑證存放到組態檔中

您可以將所有設定檔設定保留在單一檔案中,因為 AWS CLI 可以從config檔案中讀取憑證。如果兩個檔案中都有共用相同名稱之設定檔的憑證,則憑證檔案中的金鑰具有高優先順序。建議您在 credentials 檔案中保留憑證。這些檔案也用於各種語言軟體開發套件 (SDKs)。如果您SDKs除了 之外,還使用其中一個 AWS CLI,請確認憑證是否應存放在自己的檔案中。

主目錄的位置根據作業系統而不同,但在 Windows 中是使用環境變數 %UserProfile% 來參考,而在 Unix 系統中是使用 $HOME~ (波狀符號) 來參考。您可以將 AWS_CONFIG_FILEAWS_SHARED_CREDENTIALS_FILE 環境變數設為其他本機路徑,以指定檔案的非預設位置。如需詳細資訊,請參閱 設定 的環境變數 AWS CLI

當您使用指定 AWS Identity and Access Management (IAM) 角色的共用設定檔時, 會 AWS CLI 呼叫 AWS STS AssumeRole操作來擷取臨時憑證。然後會存放這些憑證 (在 ~/.aws/cli/cache 中)。後續 AWS CLI 命令會使用快取的臨時憑證,直到過期為止,此時 AWS CLI 會自動重新整理憑證。

使用命名設定檔

若未明確定義任何設定檔,系統會使用 default 設定檔。

若要使用命名設定檔,請新增 --profile profile-name 選項到命令中。下列範例會列出使用user1設定檔中定義的憑證和設定的所有 Amazon EC2執行個體。

$ aws ec2 describe-instances --profile user1

如果您要將一個具名設定檔用於多個命令,請將 AWS_PROFILE 環境變數設定為預設設定檔,即可避免在每個命令中指定設定檔。您可以使用 --profile 參數來覆寫此設定。

Linux or macOS
$ export AWS_PROFILE=user1
Windows
C:\> setx AWS_PROFILE user1

使用 set 設定環境變數會變更使用的數值,直到目前命令提示工作階段結束或直到您將該變數設為其他數值。

使用 setx 來設定環境變數時,將會變更您在執行命令後建立的所有命令 Shell 中的數值。不會影響您執行命令當時已執行的任何命令 Shell。關閉並重新啟動命令 Shell,以查看變更的效果。

設定環境變數會變更預設的設定檔,直到 Shell 工作階段結束或直到您將該變數設為其他數值。您可以將環境變數放入 Shell 的啟動指令碼中,讓它們跨未來的工作階段持續生效。如需詳細資訊,請參閱設定 的環境變數 AWS CLI

使用命令設定和檢視組態設定

有數種方法可以使用命令,來檢視和設定您的組態設定。

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 set

您可以使用 aws configure set 來設定任何憑證或組態設定。使用 --profile 設定來指定您想要檢視或修改的設定檔。

例如,以下命令會在名為 integ 的設定檔中進行 region 設定。

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

若要移除設定,請在文字編輯器中手動刪除 configcredentials 檔案中的設定。

aws configure get

您可以擷取已使用 aws configure get 設定的任何憑證或組態設定。使用 --profile 設定來指定您想要檢視或修改的設定檔。

例如,以下命令會在名為 region 的設定檔中擷取 integ 設定。

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

如果輸出是空的,則設定未明確設定,將會使用預設值。

aws configure list

若要列出組態資料,請使用 aws configure list 命令。此命令會列出設定檔、存取金鑰、私密金鑰,以及用於所指定設定檔的區域組態資訊。對於每個組態項目,它會顯示值、擷取組態值的位置,以及組態變數名稱。

例如,如果您在環境變數 AWS 區域 中提供 ,此命令會顯示您設定的區域名稱、此值來自環境變數,以及環境變數的名稱。

對於角色和 IAM Identity Center 等臨時憑證方法,此命令會顯示暫時快取的存取金鑰,並顯示秘密存取金鑰。

$ 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

設定新的組態和憑證命令範例

您可以從下列範例了解如何針對不同驗證方法,用憑證、區域和指定輸出來設定預設設定檔。

Short-term credentials

此範例適用於來自 AWS Identity and Access Management的短期憑證。aws 配置精靈是用於設定初始值,而 aws configure set 命令會指派所需的最後值。如需詳細資訊,請參閱使用 的短期憑證進行驗證 AWS CLI

$ 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 set aws_session_token fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
IAM role

此範例適用於擔任 IAM角色。使用IAM角色的設定檔會從另一個設定檔提取憑證,然後套用IAM角色許可。在下列範例中,default 是憑證的來源設定檔,且 user1 借用相同憑證來擔任新角色。此程序中沒有精靈,因此每個值皆使用 aws configure set 命令設定。如需詳細資訊,請參閱在 中使用IAM角色 AWS CLI

$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole $ aws configure set source_profile default $ aws configure set role_session_name session_user1 $ aws configure set region us-west-2 $ aws configure set output json
Amazon EC2 instance metadata credentials

此範例適用於從託管 Amazon EC2執行個體中繼資料取得的憑證。此程序中沒有精靈,因此每個值皆使用 aws configure set 命令設定。如需詳細資訊,請參閱使用 Amazon EC2執行個體中繼資料作為 中的憑證 AWS CLI

$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole $ aws configure set credential_source Ec2InstanceMetadata $ aws configure set region us-west-2 $ aws configure set output json
Long-term credentials
警告

為了避免安全風險,開發專用軟體或使用真實資料時,請勿使用IAM使用者進行身分驗證。相反地,搭配使用聯合功能和身分提供者,例如 AWS IAM Identity Center

此範例適用於來自 AWS Identity and Access Management的長期憑證。如需詳細資訊,請參閱使用 IAM的使用者憑證進行驗證 AWS CLI

$ 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

支援的 config 檔案設定

config 檔案中支援下列設定。將會使用指定的 (或預設) 描述檔中列出的數值,除非因為有相同名稱的環境變數或相同名稱的命令列選項而被覆寫。如需有關哪些順序設定具有高優先順序的詳細資訊,請參閱 設定 的設定 AWS CLI

全域設定

api_versions

部分 AWS 服務會維護多個API版本,以支援回溯相容性。根據預設, AWS CLI 命令會使用最新的可用API版本。您可以在config檔案中包含 api_versions設定,以指定要用於設定檔的API版本。

這是「巢狀」設定,後面接著一或多個縮排線,每個縮排都會識別一個 AWS 服務和要使用的API版本。請參閱每個服務的文件,以了解有哪些API版本可供使用。

下列範例示範如何指定兩個 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 = AKIAIOSFODNN7EXAMPLE
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

指定用於驗證憑證的 CA SSL憑證套件 (具有.pem副檔名的檔案)。

可由 AWS_CA_BUNDLE 環境變數或 --ca-bundle 命令列選項所覆寫。

ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem
cli_follow_urlparam

指定 AWS CLI 嘗試遵循以 http://或 開頭的命令列參數中的URL連結https://。啟用時,擷取的內容會用作 參數值,而不是 URL。

  • true – 這是預設值。如果指定,將擷取以 http://https:// 開頭的任何字串參數,而任何下載的內容會作為命令的參數值。

  • false – 如果指定, AWS CLI 不會處理開頭為 http://或與其他字串https://不同的參數字串值。

此項目沒有同等環境變數或命令列選項。

cli_follow_urlparam = false
cli_history

預設為停用。此設定會啟用 AWS CLI命令歷史記錄。啟用此設定後, 會 AWS CLI 記錄aws命令的歷史記錄。

cli_history = enabled

您可以使用 aws history list 命令來列出歷史記錄,並且在 aws history show 命令中使用產生的 command_ids 取得詳細資訊。如需詳細資訊,請參閱 AWS CLI 參考指南中的 aws history

cli_timestamp_format

指定輸出包含的時間戳記值格式。您可以指定下列任一數值:

  • iso8601 – 第 2 AWS CLI 版的預設值。如果指定, 會根據 ISO8601 AWS CLI 重新格式化所有時間戳記。

    ISO 8601 格式時間戳記如下所示。第一個範例透過在 時間Z之後包含 ,顯示國際標準時間 (UTC) 中的時間。日期和時間使用 T 分隔。

    2019-10-31T22:21:41Z

    若要指定不同的時區,而非 Z,請指定 +或 ,-以及所需時區在 之前或之後的小時數UTC,作為兩位數值。下列範例顯示與上一個範例相同的時間,但已調整為 Pacific 標準時間,也就是落後 的 8 小時UTC。

    2019-10-31T14:21:41-08
  • wire – 第 1 AWS CLI 版的預設值。如果指定, AWS CLI 會顯示所有時間戳記值,與HTTP查詢回應中收到的完全相同。

此項目沒有同等環境變數或命令列選項。

cli_timestamp_format = iso8601
credential_process

指定外部命令,讓 AWS CLI 執行以產生或擷取要用於此命令的身分驗證憑證。命令必須以特定格式傳回憑證。如需有關如何使用此設定的詳細資訊,請參閱 在 中使用外部程序來來源憑證 AWS CLI

此項目沒有同等環境變數或命令列選項。

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

在 Amazon EC2執行個體或容器內使用,以指定 AWS CLI 可以尋找憑證的位置,以使用 role_arn 參數擔任您指定的角色。您無法在同一個描述檔中同時指定 source_profilecredential_source

此參數可以有下列三個數值中的一個:

  • 環境 – 指定 AWS CLI 是從環境變數擷取來源憑證。

  • Ec2InstanceMetadata – 指定 AWS CLI 要使用連接至EC2執行個體設定檔IAM的角色來取得來源憑證。

  • EcsContainer – 指定 AWS CLI 要使用連接到ECS容器IAM的角色作為來源憑證。

credential_source = Ec2InstanceMetadata
duration_seconds

指定角色工作階段的最大持續時間 (以秒為單位)。此數值的範圍可以從 900 秒 (15 分鐘) 到角色的最大工作階段持續時間設定的數值 (其最大值為 43200)。這是選用參數,並且依預設,此數值會設為 3600 秒。

endpoint_url

指定用於所有服務要求的端點。如果在 config 檔案的 services 區段中使用此設定,則端點僅用於指定的服務。

以下範例使用 Amazon S3 的全域端點 http://localhost:1234 和服務特定端點 http://localhost:4567

[profile dev] endpoint_url = http://localhost:1234 services = s3-specific [services s3-specific] s3 = endpoint_url = http://localhost:4567

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 AWS 組態檔案,或在命令列上明確宣告為 參數。 AWS CLI 端點組態設定的優先順序如下:

  1. --endpoint-url 命令列選項。

  2. 如果啟用,則 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全域端點環境變數或設定檔設定 ignore_configure_endpoint_urls 將忽略自訂端點。

  3. 服務特定環境變數 AWS_ENDPOINT_URL_<SERVICE> 所提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 環境變數所提供的值。

  5. 共用 config 檔案 services 區段內的 endpoint_url 設定所提供的服務特定端點值。

  6. 共用 config 檔案的 profile 中的 endpoint_url 設定所提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 設定。

  8. 最後 AWS 服務 會使用URL個別 的任何預設端點。如需每個區域可用的標準服務端點清單,請參閱 Amazon Web Services 一般參考 中的 AWS 區域與端點

ignore_configure_endpoint_urls

如果啟用, 會 AWS CLI 忽略config檔案中指定的所有自訂端點組態。有效值為 truefalse

ignore_configure_endpoint_urls = true

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 AWS 組態檔案,或在命令列上明確宣告為 參數。 AWS CLI 端點組態設定的優先順序如下:

  1. --endpoint-url 命令列選項。

  2. 如果啟用,則 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全域端點環境變數或設定檔設定 ignore_configure_endpoint_urls 將忽略自訂端點。

  3. 服務特定環境變數 AWS_ENDPOINT_URL_<SERVICE> 所提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 環境變數所提供的值。

  5. 共用 config 檔案 services 區段內的 endpoint_url 設定所提供的服務特定端點值。

  6. 共用 config 檔案的 profile 中的 endpoint_url 設定所提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 設定。

  8. 最後 AWS 服務 會使用URL個別 的任何預設端點。如需每個區域可用的標準服務端點清單,請參閱 Amazon Web Services 一般參考 中的 AWS 區域與端點

external_id

指定一個唯一識別符,第三方用來在其客戶帳戶擔任角色。這映射到 ExternalId 操作的 AssumeRole 參數。只有在角色的信任政策指定 ExternalId 的數值時,才需要此參數。如需詳細資訊,請參閱 IAM 使用者指南 中的如何在將 AWS 資源的存取權授予第三方時使用外部 ID

max_attempts

指定重試 AWS CLI 處理常式使用的最大重試次數值,其中初始呼叫會計入您提供的max_attempts值。

您可以使用 AWS_MAX_ATTEMPTS 環境變數來覆寫此數值。

max_attempts = 3
mfa_serial

擔任角色時要使用MFA的裝置識別號碼。只有在要擔任的角色的信任政策包含需要MFA身分驗證的條件時,才必須執行此操作。此值可以是硬體裝置的序號 (例如 GAHT12345678),也可以是虛擬MFA裝置的 Amazon Resource Name (ARN) (例如 )arn:aws:iam::123456789012:mfa/user

output

對於請求使用此描述檔的命令,指定預設輸出格式。您可以指定下列任何數值:

  • json – 輸出已格式化為JSON字串。

  • text – 輸出的格式是多行以 Tab 分隔的字串值。這對於將輸出傳遞給文字處理器 (如 grepsedawk) 非常有用。

  • table – 輸出的格式為使用字元 +|- 形成儲存格框線的表格。它通常以「方便人類使用」的格式來呈現資訊,這種格式比其他格式更容易閱讀,但在編寫程式方面較不有用。

可由 AWS_DEFAULT_OUTPUT 環境變數或 --output 命令列選項所覆寫。

output = table
parameter_validation

指定 AWS CLI 用戶端是否嘗試在將參數傳送至 AWS 服務端點之前驗證參數。

  • true – 這是預設值。如果指定, 會 AWS CLI 執行命令列參數的本機驗證。

  • false – 如果指定, AWS CLI 不會在將命令列參數傳送到 AWS 服務端點之前驗證命令列參數。

此項目沒有同等環境變數或命令列選項。

parameter_validation = false
region

指定 AWS 區域 要針對使用此設定檔請求的命令傳送請求的 。

  • 您可以指定可用於所選服務的任何區域程式碼,如 Amazon Web Services 一般參考 中的 AWS 區域與端點所列。

  • aws_global 可讓您為支援全域端點的服務指定全域端點,以及區域端點,例如 AWS Security Token Service (AWS STS) 和 Amazon Simple Storage Service (Amazon S3)。

您可以使用 AWS_DEFAULT_REGION 環境變數或 --region 命令列選項來覆寫此數值。

region = us-west-2
retry_mode

指定重試模式 AWS CLI 使用哪個。有三種可用的重試模式:傳統 (預設)、標準和自適應。如需有關重試的詳細資訊,請參閱 AWS CLI 中的重試 AWS CLI

您可以使用 AWS_RETRY_MODE 環境變數來覆寫此數值。

retry_mode = standard
role_arn

指定您要用來執行 AWS CLI 命令之IAM角色的 Amazon Resource Name (ARN)。您還必須指定下列其中一個參數,以識別具有許可能擔任此角色的憑證:

  • source_profile

  • credential_source

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

環境變數 AWS_ROLE_ARN 會覆寫此設定。

如需使用 Web 身分的詳細資訊,請參閱 擔任具有 Web 身分的角色

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

環境變數 AWS_ROLE_SESSION_NAME 會覆寫此設定。

如需使用 Web 身分的詳細資訊,請參閱 擔任具有 Web 身分的角色

services

指定要用於設定檔的服務組態。

[profile dev-s3-specific-and-global] endpoint_url = http://localhost:1234 services = s3-specific [services s3-specific] s3 = endpoint_url = http://localhost:4567

如需 services 區段的詳細資訊,請參閱 區段類型:services

環境變數 AWS_ROLE_SESSION_NAME 會覆寫此設定。

如需使用 Web 身分的詳細資訊,請參閱 擔任具有 Web 身分的角色

sdk_ua_app_id

單一 AWS 帳戶 可由多個客戶應用程式用來呼叫 AWS 服務。應用程式 ID 會識別使用 進行一組呼叫的來源應用程式 AWS 服務。 AWS SDKs 和 服務不使用或解釋此值,但 會在客戶通訊中使其恢復。例如,此值可以包含在操作電子郵件中,以唯一識別哪些應用程式與通知相關聯。

應用程式 ID 是長度上限為 50 個字元的字串。允許使用字母、數字和下列特殊字元:! $ % & * + - . , ^ _ ` | ~預設情況下,不會指派任何值。

sdk_ua_app_id = prod1

此設定可透過使用 AWS_SDK_UA_APP_ID 環境變數來覆寫。您無法將此數值設為命令列參數。

source_profile

指定具有長期憑證、 AWS CLI 可用來擔任您使用 role_arn 參數所指定角色的具名描述檔。您無法在同一個描述檔中同時指定 source_profilecredential_source

source_profile = production-profile
sts_regional_endpoints

指定 如何 AWS CLI 決定 AWS CLI 用戶端用來與 AWS Security Token Service () 通話 AWS 的服務端點AWS STS。第 1 AWS CLI 版的預設值為 legacy

您可以指定下列兩個數值中的一個數值:

  • legacy – 將 全域STS端點 用於下列 AWS 區域:ap-northeast-1sts.amazonaws.com.rproxy.goskope.comap-south-1ap-southeast-1ap-southeast-2aws-global、、ca-central-1eu-central-1eu-north-1eu-west-1eu-west-2eu-west-3、、sa-east-1us-east-1us-east-2us-west-1us-west-2。所有其他區域會自動使用其各自的區域端點。

  • regional – AWS CLI 一律使用目前設定區域的 AWS STS 端點。例如,如果用戶端設定為使用 us-west-2,則對 的所有呼叫 AWS STS 都會對區域端點而不是sts.us-west-2.amazonaws.com全域sts.amazonaws.com端點進行。若要在啟用此設定的同時,將請求傳送至全域端點,您可以將區域設為 aws-global

此設定可透過使用 AWS_STS_REGIONAL_ENDPOINTS 環境變數來覆寫。您無法將此數值設為命令列參數。

use_dualstack_endpoint

啟用雙堆疊端點傳送 AWS 請求。若要進一步了解支援 IPv4和 IPv6流量的雙堆疊端點,請參閱Amazon Simple Storage Service 使用者指南中的使用 Amazon S3 雙堆疊端點。雙堆疊端點適用於部分區域的某些服務。如果 服務或 不存在雙堆疊端點 AWS 區域,則請求會失敗。此選項根據預設為停用。

這與 use_accelerate_endpoint 設定互斥。

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 AWS 組態檔案,或在命令列上明確宣告為 參數。 AWS CLI 端點組態設定的優先順序如下:

  1. --endpoint-url 命令列選項。

  2. 如果啟用,則 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全域端點環境變數或設定檔設定 ignore_configure_endpoint_urls 將忽略自訂端點。

  3. 服務特定環境變數 AWS_ENDPOINT_URL_<SERVICE> 所提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 環境變數所提供的值。

  5. 共用 config 檔案 services 區段內的 endpoint_url 設定所提供的服務特定端點值。

  6. 共用 config 檔案的 profile 中的 endpoint_url 設定所提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 設定。

  8. 最後 AWS 服務 會使用URL個別 的任何預設端點。如需每個區域可用的標準服務端點清單,請參閱 Amazon Web Services 一般參考 中的 AWS 區域與端點

use_fips_endpoint

某些 AWS 服務提供某些 中支援聯邦資訊處理標準 (FIPS) 140-2 的端點 AWS 區域。當 AWS 服務支援 時FIPS,此設定會指定 AWS CLI 應使用 的FIPS端點。與標準 AWS 端點不同,FIPS端點使用符合 140-2 FIPS TLS的軟體程式庫。會與美國政府互動的企業可能需要這些端點。

如果啟用此設定,但 中的服務不存在FIPS端點 AWS 區域,則 AWS 命令可能會失敗。在此情況下,請使用 --endpoint-url 選項或使用服務特定端點手動指定要在命令中使用的端點。

如需依 指定FIPS端點的詳細資訊 AWS 區域,請參閱依FIPS服務區分的端點。

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 AWS 組態檔案,或在命令列上明確宣告為 參數。 AWS CLI 端點組態設定的優先順序如下:

  1. --endpoint-url 命令列選項。

  2. 如果啟用,則 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全域端點環境變數或設定檔設定 ignore_configure_endpoint_urls 將忽略自訂端點。

  3. 服務特定環境變數 AWS_ENDPOINT_URL_<SERVICE> 所提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 環境變數所提供的值。

  5. 共用 config 檔案 services 區段內的 endpoint_url 設定所提供的服務特定端點值。

  6. 共用 config 檔案的 profile 中的 endpoint_url 設定所提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 設定。

  8. 最後 AWS 服務 會使用URL個別 的任何預設端點。如需每個區域可用的標準服務端點清單,請參閱 Amazon Web Services 一般參考 中的 AWS 區域與端點

web_identity_token_file

指定檔案的路徑,其中包含身分提供者提供的 OAuth 2.0 存取權杖或 OpenID Connect ID 權杖。 AWS CLI 會載入此檔案的內容,並將其作為 WebIdentityToken 引數傳遞至 AssumeRoleWithWebIdentity 操作。

環境變數 AWS_WEB_IDENTITY_TOKEN_FILE 會覆寫此設定。

如需使用 Web 身分的詳細資訊,請參閱 擔任具有 Web 身分的角色

tcp_keepalive

指定 AWS CLI 用戶端是否使用TCP保持連線封包。

此項目沒有同等環境變數或命令列選項。

tcp_keepalive = false

S3 自訂命令設定

Amazon S3 支援數個設定,可設定 如何 AWS CLI 執行 Amazon S3 操作。有些適用於 s3apis3 命名空間中的所有 S3 命令。其他則專門用於 S3 "custom" 命令,這些命令會抽象常見操作,並執行對API操作的 one-to-one更多映射。aws s3 傳輸命令 cpsyncmvrm 有額外設定,供您用來控制 S3 傳輸。

您可以在 config 檔案中指定 s3 巢狀設定,以設定所有這些選項。每個設定都各自一行縮排。

注意

這些設定完全是選用。您無需設定任何這些設定,就應該能夠成功使用 aws s3 傳輸命令。提供這些設定可讓您基於效能而調整,或控制您執行這些 aws s3 命令的特定環境。

這些設定全部都在 config 檔案中的最上層 s3 索引鍵之下設定,如以下 development 描述檔的範例所示。

[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

以下設定適用於 s3s3api 命名空間中的任何 S3 命令。

addressing_style

指定要使用的定址樣式。這可控制儲存貯體名稱是否位於主機名稱中,或是否屬於 的一部分URL。有效值為:pathvirtualauto。預設值為 auto

建構 Amazon S3 端點有兩種樣式。第一種稱為 virtual,並且在主機名稱中包含儲存貯體名稱。例如:https://bucketname.s3.amazonaws.com。或者,使用 path 樣式,您可以將儲存貯體名稱視為 中的路徑URI;例如 https://s3.amazonaws.com/bucketname。中的預設值CLI是使用 auto,其會嘗試使用可以使用的virtual樣式,但會在需要時回復為path樣式。例如,如果您的儲存貯體名稱DNS不相容,則儲存貯體名稱不能是主機名稱的一部分,而且必須在路徑中。使用 時auto, CLI會偵測此條件,並自動為您切換至path樣式。如果您將定址樣式設定為 path,則必須確保您在 AWS CLI 中設定的 AWS 區域符合儲存貯體的區域。

payload_signing_enabled

指定是否要SHA256簽署 sigv4 承載。根據預設,使用 時,串流上傳 (UploadPartPutObject) 會停用此功能HTTPS。根據預設,串流上傳 falseUploadPartPutObject) 會設為 ,但只有在ContentMD5存在 (預設為產生) 且端點使用 時才會設為 HTTPS。

如果設定為 true,S3 請求會以總和SHA256檢查碼的形式接收額外的內容驗證,該檢查總和會為您計算並包含在請求簽章中。如果設定為 false,則不計算檢查總和。停用此參數有助於降低檢查總和計算所造成的效能負荷。

use_accelerate_endpoint

對所有 s3s3api 命令使用 Amazon S3 加速端點。預設值為 false。這與 use_dualstack_endpoint 設定互斥。

如果設定為 true, 會將所有 Amazon S3 請求 AWS CLI 導向至位於 的S3 Accelerate端點s3-accelerate.amazonaws.com。若要使用這個端點,您必須啟用儲存貯體來使用 S3 Accelerate。所有請求都是使用虛擬樣式的儲存貯體定址所傳送:my-bucket.s3-accelerate.amazonaws.com。不會將任何 ListBucketsCreateBucketDeleteBucket 請求傳送至 S3 加速端點,因為該端點不支援這些操作。如果將任何 s3s3api 命令的 --endpoint-url 參數設為 https://s3-accelerate.amazonaws.com.rproxy.goskope.comhttp://s3-accelerate.amazonaws.com,也可以設定此行為。

以下設定只適用於 s3 命名空間命令集的命令。

max_bandwidth

指定往返於 Amazon S3 上傳和下載資料時可消耗的最大頻寬。預設值是無限制。

這會限制 S3 命令在往返於 Amazon S3 傳輸資料時可使用的最大頻寬。這個數值僅適用於上傳和下載,不適用於複製或刪除。數值以每秒位元組數為單位。數值可以指定為:

  • 整數。例如,1048576 將最大頻寬使用量設定為每秒 1 百萬位元組。

  • 整數加上速率尾碼。您可以使用 KB/sMB/sGB/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/file3並行上傳檔案 localdir/file1localdir/file2和 。設定 max_concurrent_requests 會指定可同時執行的傳輸操作數量上限。

由於幾個原因,您可能需要變更這個數值:

  • 降低這個數值 – 在某些環境中,10 個並行請求的預設值可能拖垮系統。這可能導致連線逾時,或使系統的回應能力變慢。降低這個數值可讓 S3 傳輸命令耗用較少的資源。缺點是 S3 傳輸可能需要更久才會完成。如果您使用工具來限制頻寬,則可能需要降低這個數值。

  • 提高這個數值 – 在某些情況下,您可能希望 Amazon S3 傳輸依需要儘量使用網路頻寬,以儘快完成。在這種情況下,預設的並行請求數量可能還不足以使用所有可用的網路頻寬。提高此數值可以縮短完成 Amazon S3 傳輸所花的時間。

max_queue_size

指定任務佇列中的任務數量上限。預設值為 1000。

AWS CLI 內部 會使用模型,在該模型中,它會佇列 Amazon S3 任務,然後由編號受 限制的取用者執行max_concurrent_requests。任務通常會映射到單一 Amazon S3 操作。例如,任務可能是 PutObjectTaskGetObjectTaskUploadPartTask。任務新增到佇列的速率可比消費者完成任務的速率快很多。為了避免無限制成長,任務佇列大小會受限於特定大小。這個設定會變更該數量的上限值。

您通常不需要變更此設定。此設定也對應於 AWS CLI 知道需要執行的任務數量。這表示依預設, AWS CLI 只能看到 1000 個未來的任務。增加此值意味著 AWS CLI 可以更快地知道所需的任務總數,假設佇列率比任務完成率更快。缺點是較大的 max_queue_size 需要更多記憶體。

multipart_chunksize

指定 AWS CLI 用於個別檔案分段傳輸的區塊大小。預設值為 8 MB,下限為 5 MB。

當檔案傳輸超過 multipart_threshold 時, AWS CLI 會將檔案分割成此大小的區塊。指定這個數值所使用的語法與 multipart_threshold 相同,包括以整數指定位元組數量,或使用大小和尾碼。

multipart_threshold

指定用於個別檔案 AWS CLI 分段傳輸的大小閾值。預設值為 8 MB。

當上傳、下載或複製檔案時,如果檔案超過該大小,Amazon S3 命令會切換到分段操作。您有兩種方式可以指定此數值:

  • 以位元組為單位的檔案大小。例如:1048576

  • 附上大小尾碼的檔案大小。您可以使用 KBMBGBTB,例如 10MB1GB

    注意

    對於可用於分段操作的有效值,S3 可以施加限制。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的 S3 分段上傳文件。