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

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

共享Amazonconfigcredentials文件

共享Amazonconfigcredentials文件包含一组配置文件。配置文件是一组配置值,可以使用其配置文件名称从 SDK/Tool 中引用这些值。配置值附加到配置文件是为了在使用该配置文件时配置 SDK/Tool 的某些方面。

通常,可以放置在共享credentials文件中的任何值也可以放在共享config文件中。反之亦然;只能在credentials文件中放置少量设置。但是,作为安全最佳实践,我们建议您将所有敏感值(例如访问密钥 ID 和密钥)保存在单独credentials的文件中。这样,如有必要,您可以为每个文件提供单独的权限。

我们建议Amazon Web Services Management Console按照 IAM 用户指南管理访问密钥的说明从中下载这些文件。

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

配置文件

共享configcredentials文件中的设置与特定的配置文件相关联。使用多个配置文件,您可以创建不同的设置配置以应用于不同的场景。

如果未指定特定的命名[default]配置文件,则配置文件包含 SDK 或工具操作使用的值。您也可以创建单独的配置文件,您可以按名称明确引用这些配置文件。每个已命名的配置文件可以有一组不同的设置。

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

(可选)通过 SDK 代码或Amazon CLI命令设置要使用的已命名配置文件。或者,您可以使用环境变量AWS_PROFILE来指定要使用的配置文件设置。

通过命令行设置环境变量的 Linux/macOS 示例:

export AWS_PROFILE="my_named_profile";

Windows 通过命令行设置环境变量的示例:

setx AWS_PROFILE "my_named_profile"

配置文件的格式

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部分命名了一组设置,您可以使用这些设置来配置配置文件以检索 SSO 令牌。有关配置单点登录身份验证的更多信息,请参阅IAM Identity

以下示例配置了一个配置文件,该配置文件将使用 “devSampleRole” 的令牌获取 “111122223333” 账户中 “” IAM 角色的短期Amazon证书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

凭证文件的格式

文件的规则通常与credentials文件的规则相同,唯一的不同是配置config文件部分不以单词开头profile。仅在方括号之间使用唯一的配置文件名称。

[developers] ...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

示例文件

总之,每个配置文件在每个文件中可以有一些设置。大多数设置位于config文件中,而敏感信息设置位于credentials文件中。

以下示例显示了存储在这两个文件中的三个配置文件:

  • default配置文件-使用Amazon Identity and Access Management (IAM) 用户的长期凭证提供访问权限。使用此配置文件的工具或代码向美国西部(俄勒冈)区域 (us-west-2) 发送请求。 Amazon CLI使用此配置文件调用的命令将结果输出为 JSON。

  • dev-user个人资料 — 使用其他 IAM 用户的长期证书。使用此配置文件的工具或代码向美国西部(加利福尼亚北部)区域 (us-west-1) 发送请求。 Amazon CLI使用此配置文件调用的命令将结果输出为文本。

  • developers配置文件 — 使用担任指定角色的短期证书。它仅使用dev-user源配置文件中的长期证书来代入该角色和检索该角色的短期证书。使用此配置文件的工具或代码向美国西部(俄勒冈)区域 (us-west-2) 发送请求。 Amazon CLI使用此配置文件调用的命令将结果输出为 JSON。此配置文件未将其任何值存储在credentials文件中。

config文件内容

[default] region = us-west-2 output = json [profile dev-user] region = us-west-1 output = text [profile developers] role_arn = arn:aws:iam::123456789012:role/developers source_profile = dev-user region = us-west-2 output = json

credentials文件内容

[default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [dev-user] aws_access_key_id = AKIAI44QH8DHBEXAMPLE aws_secret_access_key = je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY