共享config文件和credentials文件 - Amazon 软件开发工具包和工具
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

共享config文件和credentials文件

共享credentials文件 Amazon config和文件包含一组配置文件。配置文件是一组按键值对组成的配置设置,由 Amazon Command Line Interface (Amazon CLI)、 Amazon SDK 和其他工具使用。配置值附加到配置文件中,以便在使用该配置文件时配置 SDK/工具的某些方面。这些文件是“共享”的,因为这些值会对用户本地环境中的任何应用程序、流程或 SDK 生效。

共享config文件和credentials文件都是纯文本文件,仅包含 ASCII 字符(UTF-8 编码)。它们采用通常称为 INI 文件的形式。

配置文件

共享文件 configcredentials 中的设置与特定的配置文件相关联。可以在文件中定义多个配置文件,以创建不同的设置配置以应用于不同的开发环境。

如果未指定特定的命名 [default] 配置文件,则该配置文件包含由 SDK 或工具操作使用的值。您也可以创建单独的配置文件,您可以按名称明确引用这些配置文件。每个配置文件都可以根据您的应用程序和场景的需要使用不同的设置和值。

注意

[default]只是一个未命名的配置文件。此配置文件之所以命名为default,是因为如果用户未指定配置文件,则它是 SDK 使用的默认配置文件。它不为其他配置文件提供接替的默认值。如果您在[default]配置文件中设置了某些内容,但未在命名配置文件中进行设置,则在使用命名配置文件时不会设置该值。

设置已命名的个人资料

[default]配置文件和多个已命名的配置文件可以存在于同一个文件中。在运行代码时,使用以下设置来选择您的 SDK 或工具使用哪个配置文件设置。也可以在代码中选择配置文件,或者在使用时按命令选择配置文件。 Amazon CLI

通过设置以下选项之一来配置此功能:

AWS_PROFILE-环境变量

当此环境变量设置为命名配置文件或 “默认” 时,所有 SDK 代码和 Amazon 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 2.x 的 SDK,你可以设置系统属性aws.profile当 SDK 创建服务客户端时,它会使用命名配置文件中的设置,除非该设置在代码中被覆盖。适用于 Java 的 SDK 1.x 不支持此系统属性。

配置文件的格式

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章节定义行是一个命名的配置分组,您可以将其应用于不同的开发场景。要更好地了解命名配置文件,请参阅前面关于配置文件的部分。

以下示例显示了一个config包含profile截面定义行和名为的命名截面的文件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部分定义行命名了一组设置,您使用这些设置来配置配置文件以解析 Amazon 凭据 Amazon IAM Identity Center。有关配置单点登录身份验证的更多信息,请参阅 IAM Identity Center 身份验证。配置文件通过键值对链接到 sso-session 节,其中 sso-session 是密钥,您的 sso-session 节名称是值,例如 sso-session = <name-of-sso-session-section>

以下示例配置了一个配置文件,该配置文件将使用 “my-sso” 中的令牌获取 “111122223333SampleRole” 账户中 “” IAM 角色的短期 Amazon 证书。在profile节中,使用 sso-session 密钥按名称引用 “my-sso” 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节支持服务特定的端点自定义,并且仅在包含此功能的 SDK 和工具中可用。要查看此功能是否适用于您的 SDK,请参阅 与 Amazon SDK 的兼容性 以了解服务特定的端点。

services部分定义行命名了一组为 Amazon Web Service 请求配置自定义终端节点的设置。配置文件通过键值对链接到 services 节,其中 services 是密钥,您的 services 节名称是值,例如 services = <name-of-services-section>

services部分进一步按<SERVICE> = 行分成几个小节,其中<SERVICE>是标 Amazon Web Service 识键。标 Amazon Web Service 识符基于 API 模型,将所有空格serviceId替换为下划线,并将所有字母小写。有关 services 节中要使用的所有服务标识符密钥的列表,请参阅特定于服务的端点的标识符。服务标识符密钥后面是嵌套的设置,每个设置单独成行,缩进两个空格。

以下示例使用services定义来配置端点,使其仅用于向 Amazon DynamoDB 服务发出的请求。在"local-dynamodb" services节中,使用services密钥按名称引用profile节。标 Amazon Web Service 识符密钥是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文件名称的任何设置合并。如果两个文件中都有共享相同名称的配置文件的凭证,则凭证文件中的密钥优先。