要設定的環境變數 AWS CLI - AWS Command Line Interface

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

要設定的環境變數 AWS CLI

環境變數提供另一種方法來指定組態選項和憑證,且適合用來編寫指令碼或暫時將具名描述檔設為預設值。

選項的優先順序
  • 如果您使用本主題中所述的其中一個環境變數來指定選項,它將覆寫從組態檔中描述檔載入的任何數值。

  • 如果您使用指 AWS CLI 令行上的參數來指定選項,它會取代組態檔案中對應環境變數或設定檔中的任何值。

如需優先順序以及如何 AWS CLI 決定要使用哪些認證的詳細資訊,請參閱配置 AWS CLI

如何設定環境變數

下列範例說明如何為預設使用者設定環境變數。

Linux or macOS
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_DEFAULT_REGION=us-west-2

設定環境變數會變更使用的數值,直到 Shell 工作階段結束或直到您將該變數設為其他數值。您可以在 Shell 的啟動指令碼中設定變數,讓它們跨未來的工作階段持續生效。

Windows Command Prompt

為所有工作階段設定

C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> setx AWS_DEFAULT_REGION us-west-2

使用 setx 設定環境變數時,將會變更在目前命令提示工作階段及您在執行命令後建立的所有命令提示工作階段中使用的數值。不會影響您執行命令當時已執行的其他命令 Shell。您可能需要重新啟動終端機才能載入設定。

僅針對目前工作階段設定

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

C:\> set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE C:\> set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> set AWS_DEFAULT_REGION=us-west-2
PowerShell
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"

如果您在 PowerShell 提示中設定環境變數 (如前面範例所示),則只會儲存目前工作階段持續時間的值。若要讓環境變數設定在所有 PowerShell 和 [命令提示字元] 工作階段中持續存放,請使用 [控制台] 中的系統應用程式來儲存。或者,您可以將變量添加到您的個 PowerShell 人資料中,為所有 future 的 PowerShell 會話設置該變量。如需有關儲存環境變數或在工作階段中保留環境變數的詳細資訊,請參閱PowerShell 文件。

AWS CLI 支援的環境變數

AWS CLI 支援下列環境變數。

AWS_ACCESS_KEY_ID

指定與 IAM 帳戶關聯的 AWS 存取金鑰。

如果已定義,此環境變數會覆寫設定檔設定 aws_access_key_id 的數值。您無法使用命令列選項來指定存取金鑰 ID。

AWS_CA_BUNDLE

指定要用於 HTTPS 憑證驗證的憑證套件路徑。

如果已定義,此環境變數會覆寫設定檔設定 ca_bundle 的數值。您可以使用 --ca-bundle 命令列參數來覆寫此環境變數。

AWS_CLI_AUTO_PROMPT

啟用 AWS CLI 版本 2 的自動提示。有兩種設定可以使用:

  • 在您每次嘗試執行 aws 命令時,on 都會使用完整的自動提示模式。這包括在完整的命令或不完整的命令之後按下 ENTER

  • on-partial 使用部分自動提示模式。如果命令不完整或因用戶端驗證錯誤而無法執行,則會使用自動提示。如果您有預先存在的指令碼、Runbook,或者您只想要自動提示您不熟悉的指令,而不是在每個指令上提示,則此模式非常有用。

如果已定義,此環境變數會覆寫 cli_auto_prompt 設定檔設定的數值。您可以使用 --cli-auto-prompt--no-cli-auto-prompt 命令列參數來覆寫此環境變數。

如需第 2 AWS CLI 版自動提示功能的資訊,請參閱讓 AWS CLI 提示您輸入命令提示

AWS_CLI_FILE_ENCODING

指定用於文字檔的編碼。預設情況下,編碼會與您的語言環境相符。若要設定與地區設定不同的編碼,請使用 aws_cli_file_encoding 環境變數。例如,如果您使用 Windows 的預設編碼 CP1252,則 aws_cli_file_encoding=UTF-8 設定會將 CLI 設定為使用 UTF-8

AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS

如果來源值區和目的地值區在使用 Custom s3 mv 指令時相同,則可能會將來源檔案或物件移到自身上,這可能會導致意外刪除來源檔案或物件。AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS環境變數和--validate-same-s3-paths選項指定是否驗證 Amazon S3 來源或目標 URI 中的存取點 ARN 或存取點別名。

注意

的路徑驗證s3 mv需要額外的 API 呼叫。

AWS_CONFIG_FILE

指定 AWS CLI 用來儲存組態設定檔的檔案位置。預設路徑為 ~/.aws/config

您無法在具名設定檔設定中或使用命令列參數來指定此數值。

AWS_DATA_PATH

載入 AWS CLI 資料~/.aws/models時,要在的內建搜尋路徑之外檢查的其他目錄清單。設定此環境變數會指出回復內建搜尋路徑前需要先檢查的額外目錄。多個項目應使用 os.pathsep 字元分隔,在 Linux 或 macOS 上為 :,在 Windows 上則為 ;

AWS_DEFAULT_OUTPUT

指定要使用的輸出格式

如果已定義,此環境變數會覆寫設定檔設定 output 的數值。您可以使用 --output 命令列參數來覆寫此環境變數。

AWS_DEFAULT_REGION

在預設情況下, AWS 會Default region name識別您要傳送要求的伺服器的區域。這通常是最接近您的區域,但它可以是任何區域。例如,您可以輸入 us-west-2 來使用美國西部 (奧勒岡)。除非您在個別命令中另外指定,否則此為所有後續請求傳送到的區域。

注意

使用時,您必須明確指定「 AWS 區域」(Region) AWS CLI,或透過設定預設「區域」(Region)。如需可用區域的清單,請參閱區域和端點。所使用的「地區指示項」 AWS CLI 與您在 AWS Management Console URL 和服務端點中看到的名稱相同。

如果已定義,此環境變數會覆寫設定檔設定 region 的數值。您可以使用--region命令列參數和 AWS SDK 相容環境變數來覆寫此AWS_REGION環境變數。

AWS_EC2_METADATA_DISABLED

停用 Amazon EC2 執行個體中繼資料服務 (IMDS)。

如果設定為 true,則不會向 IMDS 要求使用者憑證或組態 (如區域)。

AWS_ENDPOINT_URL

指定用於所有服務要求的端點。

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 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 區域與端點

AWS_ENDPOINT_URL_<SERVICE>

指定用於特定服務的自訂端點,其中<SERVICE>會以 AWS 服務 識別碼取代。例如, Amazon DynamoDB 有一個serviceIdDynamoDB. 對於此服務,端點 URL 環境變數為 AWS_ENDPOINT_URL_DYNAMODB

如需所有服務特定環境變數的清單,請參閱 服務特定識別碼清單

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 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 區域與端點

AWS_IGNORE_CONFIGURED_ENDPOINT_URLS

如果啟用,將 AWS CLI 忽略所有自訂端點組態。有效值為 truefalse

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 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 區域與端點

AWS_MAX_ATTEMPTS

指定重試處理常式使用的 AWS CLI 重試次數上限值,其中初始呼叫會計入您提供的值。如需有關重試的詳細資訊,請參閱 AWS CLI 重試

如果已定義,此環境變數會覆寫設定檔設定 max_attempts 的數值。

AWS_METADATA_SERVICE_NUM_ATTEMPTS

嘗試在已設定 IAM 角色的 Amazon EC2 執行個體上擷取登入資料時,會 AWS CLI 嘗試從執行個體中繼資料服務擷取一次登入資料,然後再停止。如果您知道自己的程式碼將在 Amazon EC2 執行個體上執行,您可以增加這個值,讓 AWS CLI 在放棄之前多重新嘗試幾次。

AWS_METADATA_SERVICE_TIMEOUT

執行個體中繼資料服務連線逾時前的秒數。嘗試在已設定 IAM 角色的 Amazon EC2 執行個體上擷取憑證時,執行個體中繼資料服務連線預設為 1 秒之後逾時。如果您知道自己在已設定 IAM 角色的 Amazon EC2 執行個體上執行,您可以視需要增加這個值。

AWS_PAGER

指定用於輸出的分頁程式。默認情況下, AWS CLI 版本 2 通過操作系統的默認呼叫器程序返回所有輸出。

若要停用所有外部分頁程式,請將變數設定為空字串。

如果已定義,此環境變數會覆寫設定檔設定 cli_pager 的數值。

AWS_PROFILE

指定設定 AWS CLI 檔的名稱,以及要使用的身份證明和選項。這可以是在 credentialsconfig 檔案中存放的描述檔名稱,或數值 default 以使用預設描述檔。

如果您定義此環境變數,它將覆寫使用組態檔中名為 [default] 之描述檔的行為。您可以使用 --profile 命令列參數來覆寫此環境變數。

AWS_REGION

AWS SDK 相容環境變數,指定要傳送要求的 AWS 地區。

如果已定義,此環境變數會覆寫環境變數 AWS_DEFAULT_REGION 及設定檔設定 region 的數值。您可以使用 --region 命令列參數來覆寫此環境變數。

AWS_RETRY_MODE

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

如果已定義,此環境變數會覆寫設定檔設定 retry_mode 的數值。

AWS_ROLE_ARN

指定 IAM 角色的 Amazon 資源名稱 (ARN),其中包含您要用來執行 AWS CLI 命令的網頁身分供應商。

AWS_WEB_IDENTITY_TOKEN_FILEAWS_ROLE_SESSION_NAME 環境變數搭配使用。

如果已定義,此環境變數會覆寫設定檔設定 role_arn 的數值。您無法將角色工作階段名稱指定為命令列參數。

注意

此環境變數目前僅適用於具有 Web 身分提供者的擔任角色,並不適用一般擔任角色提供者組態。

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

AWS_ROLE_SESSION_NAME

指定要連接到角色工作階段的名稱。此值會在 AWS CLI 呼叫AssumeRole作業時提供給RoleSessionName參數,並成為假定角色使用者 ARN: arn:aws:sts::123456789012:assumed-role/role_name/role_session_name 的一部分。這是選擇性的參數。若您未提供此數值,將會自動產生工作階段名稱。此名稱會出現在與此工作階段相關聯之項目的 AWS CloudTrail 記錄中。

如果已定義,此環境變數會覆寫設定檔設定 role_session_name 的數值。

AWS_ROLE_ARNAWS_WEB_IDENTITY_TOKEN_FILE 環境變數搭配使用。

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

注意

此環境變數目前僅適用於具有 Web 身分提供者的擔任角色,並不適用一般擔任角色提供者組態。

AWS_SECRET_ACCESS_KEY

指定與存取金鑰相關聯的私密金鑰。這基本上是存取金鑰的「密碼」。

如果已定義,此環境變數會覆寫設定檔設定 aws_secret_access_key 的數值。您不能將私密存取金鑰 ID 指定為命令列選項。

AWS_SESSION_TOKEN

指定當您直接從 AWS STS 作業擷取的暫時安全憑證時需要的工作階段字符值。如需詳細資訊,請參閱AWS CLI 命令參考中的擔任角色命令的輸出部分

如果已定義,此環境變數會覆寫設定檔設定 aws_session_token 的數值。

AWS_SHARED_CREDENTIALS_FILE

指定 AWS CLI 用來儲存存取金鑰的檔案位置。預設路徑為 ~/.aws/credentials

您無法在具名設定檔設定中或使用命令列參數來指定此數值。

AWS_USE_DUALSTACK_ENDPOINT

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

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 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 區域與端點

AWS_USE_FIPS_ENDPOINT

某些 AWS 服務提供支援聯邦資訊處理標準 (FIPS) 140-2 的端點,在某些服務中。 AWS 區域 AWS 服務支援 FIPS 時,此設定會指定 AWS CLI 應使用的 FIPS 端點。與標準 AWS 端點不同,FIPS 端點使用符合 FIPS 140-2 的 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 區域與端點

AWS_WEB_IDENTITY_TOKEN_FILE

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

AWS_ROLE_ARNAWS_ROLE_SESSION_NAME 環境變數搭配使用。

如果已定義,此環境變數會覆寫設定檔設定 web_identity_token_file 的數值。

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

注意

此環境變數目前僅適用於具有 Web 身分提供者的擔任角色,並不適用一般擔任角色提供者組態。