本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用共用config
和credentials
檔案全域設定 AWS SDKs和工具
共用 AWS config
和 credentials
檔案是最常見的方式,您可以將身分驗證和組態指定給 AWS SDK 或工具。
共用 config
和 credentials
檔案包含一組設定檔。設定檔是一組組態設定,以鍵值對表示,供 AWS SDKs、 AWS Command Line Interface (AWS CLI) 和其他工具使用。組態值會連接至設定檔,以便在使用該設定檔時設定 SDK/工具的某些層面。這些檔案是「共用」,因為這些值會影響使用者本機環境上的任何應用程式、程序或SDKs。
共用config
和credentials
檔案都是純文字檔案,僅包含 ASCII 字元 (UTF-8 編碼)。它們採用通常稱為 INI 檔案
描述檔
共用 config
和 credentials
檔案內的設定與特定設定檔相關聯。您可以在 檔案中定義多個設定檔,以建立不同的設定組態,以套用至不同的開發環境。
[default]
若未指定特定具名設定檔,設定檔會包含 SDK 或工具操作所使用的值。您也可以建立個別的設定檔,以便依名稱明確參考。每個設定檔都可以根據您的應用程式和案例使用不同的設定和值。
注意
[default]
只是未命名的設定檔。此描述檔已命名,default
因為如果使用者未指定描述檔,則它是 SDK 使用的預設描述檔。它不會將繼承的預設值提供給其他設定檔。如果您在[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 系統屬性-
對於 JVM 上的適用於 Kotlin 的 SDK 和適用於 Java 的 SDK 2.x,您可以設定aws.profile系統屬性。當 SDK 建立服務用戶端時,除非在程式碼中覆寫設定,否則會使用具名設定檔中的設定。適用於 Java 的 SDK 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 Identity Center 驗證 AWS SDK 和工具。描述檔由索引鍵/值對連結到sso-session
區段,其中 sso-session
是索引鍵,而sso-session
區段的名稱是 值,例如 sso-session = <name-of-sso-session-section>
。
下列範例會設定設定檔,使用來自 "my-sso" 的字符,取得 "111122223333" 帳戶中 "SampleRole" IAM 角色的短期 AWS 憑證。profile
區段中的「my-sso」sso-session
區段是使用 sso-session
金鑰以名稱參考。
[profile
dev
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole
[sso-sessionmy-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
[serviceslocal-dynamodb
] dynamodb = endpoint_url =http://localhost:8000
如需自訂端點組態的詳細資訊,請參閱服務特定的端點。
登入資料檔案格式
檔案的規則credentials
通常與config
檔案的規則相同,但設定檔區段開頭不是 一詞profile
。在方括號之間僅使用描述檔名稱本身。下列範例顯示名為 的設定檔區段credentials
檔案foo
。
[
foo
] ...credential settings...
只有下列被視為「秘密」或敏感的設定才能存放在 credentials
檔案中:aws_access_key_id
aws_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
檔案中的任何設定合併。如果兩個檔案中都有共用相同名稱之設定檔的憑證,則憑證檔案中的金鑰具有高優先順序。