配置和身份验证设置参考 - Amazon软件开发工具包和工具
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

配置和身份验证设置参考

开发开发工具包为提供特定于语言的 APIAmazon Web Services。他们负责成功进行 API 调用所需的一些繁重工作,包括身份验证、重试行为等。为此,开发工具包采用了灵活的策略,可以获取用于请求的证书,维护用于每项服务的设置,以及获取用于全局设置的值。

创建服务客户端

为了以编程方式进行访问Amazon Web Services,SDK 使用每个客户端类/对象Amazon Web Service。例如,如果您的应用程序需要访问 Amazon EC2,则您的应用程序会创建一个 Amazon EC2 客户端对象来连接该服务。然后,您可以使用服务客户端向其发出请求Amazon Web Service。服务客户端对象是不可变的,因此您必须为向其发出请求的每个服务创建一个新客户端,并使用不同的配置向同一服务发出请求。

设置设置的优先顺序

全局设置配置大多数 SDK 支持的功能、凭证提供者和其他功能,这些功能会产生广泛影响Amazon Web Services。所有 SDK 都有一系列需要检查的地方(或来源)以查找全局设置的值。以下是设置查找优先级:

  1. 在代码中或服务客户端本身上设置的任何显式设置都优先于其他任何设置。

    • 某些设置可以针对每个操作进行设置,并且可以根据需要为调用的每个操作进行更改。对于Amazon CLI或Amazon Tools for PowerShell,这些参数采用您在命令行上输入的每项操作参数的形式。对于 SDK,显式分配可以采用参数的形式,该参数是在实例化Amazon服务客户端或配置对象时设置的,有时是在调用单个 API 时设置的。

  2. 仅限 Java/Kotlin:有时会有 JVM 系统属性与该设置相关联。如果已设置,则该值将用于配置客户端。

  3. 系统会检查 环境变量。如果已设置,则该值将用于配置客户端。

  4. SDK 先检查共享credentials文件,然后检查共享config文件。如果存在该设置,则 SDK 会使用该设置。AWS_PROFILE环境变量或aws.profile系统属性可用于指定 SDK 加载的配置文件。

  5. 最后使用 SDK 代码库提供的任何默认值。

注意

如果config文件和文件中都存在同一配置credentials文件的设置,则使用credentials文件中的值代替config文件中的值。

注意

某些 SDK 和工具的检查顺序可能不同。此外,某些 SDK 和工具支持其他存储和检索参数的方法。例如,Amazon SDK for .NET支持一个名为 SDK 商店的额外来源。有关 SDK 或工具独有的提供商的更多信息,请参阅该 SDK 或工具的文档

顺序决定了哪些方法优先并优先于其他方法。例如,如果您在共享config文件中设置了default配置文件,则只有在 SDK 或工具先检查其他位置后才能找到和使用该配置文件。这意味着,如果您在credentials文件中输入设置,则使用该设置代替config文件中的设置。如果您使用设置和值配置环境变量,它将覆盖credentialsconfig文件中的该设置。最后,对单个操作(Amazon CLI命令行参数或 API 参数)或代码中的设置将覆盖该命令的所有其他值。

Config文件设置列表

可以在共享Amazonconfig文件中分配下表中列出的设置。它们是全球性的,影响所有人Amazon Web Services。

设置集集集名称 详细信息
api_versions 常规配置设置
aws_access_key_id 静态证书
aws_secret_access_key 静态证书
aws_session_token 静态证书
ca_bundle 常规配置设置
credential_process 流程证书
credential_source 假设角色证书
defaults_mode 智能配置默认值
duration_seconds 假设角色证书
ec2_metadata_service_endpoint IMDS 证书
ec2_metadata_service_endpoint_mode IMDS 证书
endpoint_discovery_enabled 终端发现
external_id 假设角色证书
max_attempts 重试行为
metadata_service_num_attempts Amazon EC2 2 2 2
metadata_service_timeout Amazon EC2 2 2 2
mfa_serial 假设角色证书
parameter_validation 常规配置设置
region Amazon Web Services 区域
retry_mode 重试行为
role_arn 假设角色证书
role_session_name 假设角色证书
s3_disable_multiregion_access_points Amazon S3 多区域访问点
s3_use_arn_region Amazon S3 访问点
source_profile 假设角色证书
sso_account_id IAM Identity
sso_region IAM Identity
sso_registration_scopes IAM Identity
sso_role_name IAM Identity
sso_start_url IAM Identity
sts_regional_endpoints Amazon STS区域化终端节点
use_dualstack_endpoint 双堆栈和 FIPS 终端节点
use_fips_endpoint 双堆栈和 FIPS 终端节点
web_identity_token_file 假设角色证书

Credentials文件设置列表

可以在共享Amazoncredentials文件中分配下表中列出的设置。它们是全球性的,影响所有人Amazon Web Services。

设置集集集名称 详细信息
aws_access_key_id 静态证书
aws_secret_access_key 静态证书
aws_session_token 静态证书

环境变量列表

下表列出了大多数开发工具包支持的环境变量。它们是全球性的,影响所有人Amazon Web Services。

设置集集集名称 详细信息
AWS_ACCESS_KEY_ID 静态证书
AWS_CA_BUNDLE 常规配置设置
AWS_CONFIG_FILE 共享config和credentials文件的位置
AWS_CONTAINER_AUTHORIZATION_TOKEN 容器凭证
AWS_CONTAINER_CREDENTIALS_FULL_URI 容器凭证
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 容器凭证
AWS_DEFAULTS_MODE 智能配置默认值
AWS_EC2_METADATA_DISABLED IMDS 证书
AWS_EC2_METADATA_SERVICE_ENDPOINT IMDS 证书
AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE IMDS 证书
AWS_ENABLE_ENDPOINT_DISCOVERY 终端发现
AWS_MAX_ATTEMPTS 重试行为
AWS_METADATA_SERVICE_NUM_ATTEMPTS Amazon EC2 2 2 2
AWS_METADATA_SERVICE_TIMEOUT Amazon EC2 2 2 2
AWS_PROFILE 共享Amazonconfig和credentials文件
AWS_REGION Amazon Web Services 区域
AWS_RETRY_MODE 重试行为
AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS Amazon S3 多区域访问点
AWS_S3_USE_ARN_REGION Amazon S3 访问点
AWS_SECRET_ACCESS_KEY 静态证书
AWS_SESSION_TOKEN 静态证书
AWS_SHARED_CREDENTIALS_FILE 共享config和credentials文件的位置
AWS_STS_REGIONAL_ENDPOINTS Amazon STS区域化终端节点
AWS_USE_DUALSTACK_ENDPOINT 双堆栈和 FIPS 终端节点
AWS_USE_FIPS_ENDPOINT 双堆栈和 FIPS 终端节点