本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
共享config
文件和credentials
文件
共享credentials
文件 Amazon config
和文件包含一组配置文件。配置文件是一组配置值,可以使用其配置文件名称从 SDK/工具中引用这些值。配置值附加到配置文件中,以便在使用该配置文件时配置 SDK/工具的某些方面。这些文件是“共享”的,因为这些值会对用户本地环境中的任何应用程序、流程或 SDK 生效。
通常,可以在共享credentials
文件中放置的任何值也可以放置到共享config
文件中。反之则不然;只能在credentials
文件中放置少数几个设置。但是,作为安全最佳实践,我们建议您在单独的credentials
文件中保留所有敏感值,例如访问密钥 ID 和密钥。这样,如有必要,您可以为每个文件提供单独的权限。
共享config
文件和credentials
文件都是纯文本文件,仅包含 ASCII 字符(UTF-8 编码)。它们采用通常称为 INI 文件
配置文件
共享文件 config
和 credentials
中的设置与特定的配置文件相关联。使用多个配置文件,您可以创建不同的设置配置以应用于不同的场景。
如果未指定特定的命名 [default]
配置文件,则该配置文件包含由 SDK 或工具操作使用的值。您也可以创建单独的配置文件,您可以按名称明确引用这些配置文件。每个命名配置文件可以具有不同的设置组。
[default]
只是一个未命名的配置文件。此配置文件之所以命名为default
,是因为如果用户未指定配置文件,则它是 SDK 使用的默认配置文件。它不为其他配置文件提供接替的默认值。例如,如果您在[default]
配置文件中设置了某些值,但未在命名配置文件中进行设置,则在使用命名配置文件时不会设置该值。
设置已命名的个人资料
您可以设置命名[default]
配置文件,而不是使用配置文件。
通过设置以下选项之一来配置此功能:
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 上运行的 SDK,您可以设置aws.profile系统属性。当 SDK 创建服务客户端时,它会使用命名配置文件中的设置,除非该设置在代码中被覆盖。
配置文件的格式
config
文件将归入各个节中。节是一个命名的设置集合,它一直持续到遇到另一个节定义行为止。
config
文件是使用以下格式的纯文本文件:
-
节中的所有条目均采用
setting-name=value
的一般形式。 -
可以通过以井号字符 (
#
) 开头来注释掉行。
节类型
节定义是将名称应用于设置集合的行。节定义行以方括号 ([
]
) 开头和结尾。方括号内有一个节类型标识符和该节的自定义名称。可以使用字母、数字、连字符 (-
) 和下划线 (_
),但不能使用空格。
节类型:profile
节定义行示例:[profile
dev
]
profile
节定义行命名了可以在不同场景中应用的配置分组。[default]
是唯一不需要profile
节标识符的配置文件。要更好地了解命名配置文件,请参阅前面关于配置文件的部分。
下面的示例介绍一个有 [default]
配置文件的基本 config
文件。它设置了region设置。
[default] #Full line comment, this text is ignored. region = us-east-2
以下示例显示了带有profile
节定义行的config
文件。它为配置文件使用标识符profile
后跟唯一名称。此行之后的所有设置,直到遇到另一个节定义为止,都将包含在此命名配置文件中。
[profile
developers
] ...settings...
某些设置有自己的嵌套子设置组,例如以下示例中的 s3
设置和子设置。通过缩进一个或多个空格将子设置与组相关联。
[profile testers] 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-sessionmy-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
[serviceslocal-dynamodb
] dynamodb = endpoint_url =http://localhost:8000
有关自定义端点配置的更多信息,请参阅特定于服务的端点。
凭证文件的格式
credentials
文件的规则通常与config
文件的规则相同,唯一的不同是配置文件部分不是以单词profile
开头。在方括号之间仅使用唯一的配置文件名称本身。
[
dev
] ...settings...
您只能在credentials
文件中存储设置的小型子集和值。通常,只有那些值才会被视为 “机密” 或敏感值,例如访问密钥 ID 和密钥。本指南中每项设置的页面都说明了它是可以存储在credentials
文件中还是只能存储在config
文件中。
下面的示例介绍一个有 [default]
配置文件的基本 credentials
文件。它设置 aws_access_key_id 和 aws_secret_access_key 全局设置。
[default] aws_access_key_id=
AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE