本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
共用 config
和 credentials
檔案
共用 AWS config
和 credentials
檔案包含一組設定檔。設定檔是一組組態設定,以鍵值對表示,由 AWS Command Line Interface (AWS CLI) AWS SDKs、 和其他工具使用。組態值會連接至設定檔,以便在使用該設定檔時設定 SDK/工具的某些方面。這些檔案為「共用」,因為這些值會影響使用者的任何應用程式、程序或SDKs本機環境。
共用config
和credentials
檔案都是純文字檔案,僅包含ASCII字元 (UTF-8 編碼)。它們採用通常稱為INI檔案
描述檔
共用 config
和 credentials
檔案內的設定與特定設定檔相關聯。您可以在檔案中定義多個設定檔,以建立不同的設定組態,以套用至不同的開發環境。
如果未指定特定具名[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-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
的檔案中的任何設定合併。如果兩個檔案中都有共用相同名稱之設定檔的憑證,則憑證檔案中的金鑰具有高優先順序。