共用 config 和 credentials 檔案 - AWS SDKs 和 工具

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

共用 configcredentials 檔案

共用 AWS configcredentials 檔案包含一組設定檔。設定檔是一組組態設定,以鍵值對表示,由 AWS Command Line Interface (AWS CLI) AWS SDKs、 和其他工具使用。組態值會連接至設定檔,以便在使用該設定檔時設定 SDK/工具的某些方面。這些檔案為「共用」,因為這些值會影響使用者的任何應用程式、程序或SDKs本機環境。

共用configcredentials檔案都是純文字檔案,僅包含ASCII字元 (UTF-8 編碼)。它們採用通常稱為INI檔案 的形式。

描述檔

共用 configcredentials 檔案內的設定與特定設定檔相關聯。您可以在檔案中定義多個設定檔,以建立不同的設定組態,以套用至不同的開發環境。

如果未指定特定具名[default]設定檔,設定檔會包含 SDK或工具操作所使用的值。您也可以建立個別的設定檔,以便依名稱明確參考。每個設定檔都可以根據您的應用程式和案例使用不同的設定和值。

注意

[default] 只是未命名的設定檔。如果SDK使用者未指定設定檔,default則此設定檔會命名為 使用的預設設定檔。它不會將繼承的預設值提供給其他設定檔。如果您在[default]設定檔中設定某些內容,但未在具名設定檔中設定,則當您使用具名設定檔時,不會設定該值。

設定具名設定檔

[default] 設定檔和多個具名設定檔可以存在於同一個檔案中。使用下列設定來選取 SDK或 工具在執行程式碼時使用的設定檔設定。使用 時,也可以在程式碼或每個命令內選取設定檔 AWS CLI。

透過設定下列其中一項來設定此功能:

AWS_PROFILE - 環境變數

當此環境變數設定為具名設定檔或「預設」時,所有SDK程式碼和 AWS CLI 命令都會使用該設定檔中的設定。

透過命令列設定環境變數的 Linux/macOS 範例:

export AWS_PROFILE="my_default_profile_name";

透過命令列設定環境變數的 Windows 範例:

setx AWS_PROFILE "my_default_profile_name"
aws.profile - JVM系統屬性

在 上的 SDK for Kotlin JVM和SDK適用於 Java 2.x 的 ,您可以設定aws.profile系統屬性 。SDK 建立服務用戶端時,除非在程式碼中覆寫設定,否則會使用具名設定檔中的設定。SDK for Java 1.x 不支援此系統屬性。

注意

如果您的應用程式位於執行多個應用程式的伺服器上,建議您一律使用具名設定檔,而非預設設定檔。預設設定檔會由環境中的任何 AWS 應用程式自動擷取,並在其中共用。因此,如果其他人更新其應用程式的預設設定檔,則可能會無意中影響其他人。為了防止這種情況,請在共用config檔案中定義具名設定檔,然後在程式碼中設定具名設定檔,以便在應用程式中使用該具名設定檔。如果您知道命名設定檔的範圍僅影響您的應用程式,則可以使用環境變數或JVM系統屬性來設定命名設定檔。

組態檔案格式

config 檔案會組織成數個區段。區段是具名的設定集合,且會持續到發生其他區段定義列為止。

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

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

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

區段類型

區段定義是將名稱套用至設定集合的行。區段定義列以方形括號 ([ ]) 開頭和結尾。在括號內,有區段類型識別碼和區段的自訂名稱。您可以使用字母、數字、連字號 ( - ) 和底線 ( _ ),但不能使用空格。

區段類型:default

範例區段定義列: [default]

[default] 是唯一不需要profile區段識別碼的設定檔。

下列範例顯示具有[default]設定檔的基本config檔案。它會設定 region設定。此行之後直到遇到另一個區段定義為止的所有設定,都是此設定檔的一部分。

[default] #Full line comment, this text is ignored. region = us-east-2

區段類型:profile

範例區段定義列: [profile dev]

profile 區段定義列是具名組態群組,您可以套用至不同的開發案例。若要進一步了解具名設定檔,請參閱設定檔上的上一節。

下列範例顯示具有profile區段定義列config的檔案,以及名為 的具名設定檔foo。此行之後直到遇到另一個區段定義為止的所有設定,都是此具名設定檔的一部分。

[profile foo] ...settings...

有些設定具有自己的巢狀子集,例如下列範例中s3的設定和子集。透過以一或多個空格縮排子集,將子集與群組建立關聯。

[profile test] region = us-west-2 s3 = max_concurrent_requests=10 max_queue_size=1000

區段類型:sso-session

範例區段定義列: [sso-session my-sso]

sso-session 區段定義列會為您命名一組設定,用於設定設定檔以使用 解析 AWS 憑證 AWS IAM Identity Center。如需設定單一登入身分驗證的詳細資訊,請參閱 IAM 您 SDK或 工具的身分中心身分驗證。設定檔會由索引鍵值對連結至sso-session區段,其中 sso-session 是索引鍵,而sso-session區段的名稱是 值,例如 sso-session = <name-of-sso-session-section>

下列範例會設定設定檔,該設定檔會使用來自 "my-ssoSampleRole" 的權杖,取得 "111122223333" 帳戶中 "" IAM角色的短期 AWS 憑證。profile 區段中的「my-sso」sso-session區段使用 sso-session金鑰以名稱參考。

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start

區段類型:services

範例區段定義列: [services dev]

注意

services 本節支援服務特定的端點自訂,且僅適用於 SDKs和包含此功能的工具。若要查看此功能是否適用於您的 SDK,請參閱 兼容性 AWS SDKs 以取得服務特定的端點。

services 區段定義列會為設定 AWS 服務 請求自訂端點的設定群組命名。設定檔會由索引鍵值對連結至services區段,其中 services 是索引鍵,而services區段的名稱是 值,例如 services = <name-of-services-section>

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

下列範例使用 services定義來設定端點,以用於僅對 服務提出的 Amazon DynamoDB 請求。"local-dynamodb" services 使用 services金鑰,在 區段中依名稱參考 profile區段。 AWS 服務 識別符索引鍵為 dynamodb。 Amazon DynamoDB 服務子區段從行 開始dynamodb = 。任何緊接著縮排的列都包含在該子區段中,並適用於該服務。

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

如需自訂端點組態的詳細資訊,請參閱 服務特定端點

憑證檔案格式

credentials 檔案的規則通常與config檔案的規則相同,但設定檔區段不是以 字開頭profile。在方括號之間僅使用設定檔名稱本身。下列範例顯示名為 的設定檔區段credentials檔案foo

[foo] ...credential settings...

只有下列被視為「秘密」或敏感的設定才能儲存在credentials檔案中:aws_access_key_idaws_secret_access_key、 和 aws_session_token。雖然這些設定也可以放在共用config檔案中,但我們建議您將這些敏感值保留在個別credentials檔案中。如此一來,您可以視需要為每個檔案提供個別的許可。

下列範例顯示具有[default]設定檔的基本credentials檔案。它設定 aws_access_key_idaws_secret_access_key、 和 aws_session_token 全域設定。

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

無論您在credentials檔案中使用具名設定檔還是「default」,此處的任何設定都會與使用相同設定檔名稱config的檔案中的任何設定合併。如果兩個檔案中都有共用相同名稱之設定檔的憑證,則憑證檔案中的金鑰具有高優先順序。