本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置和身份验证设置参考
开发开发工具包为提供特定于语言的 APIAmazon Web Services。他们负责成功进行 API 调用所需的一些繁重工作,包括身份验证、重试行为等。为此,开发工具包采用了灵活的策略,可以获取用于请求的证书,维护用于每项服务的设置,以及获取用于全局设置的值。
创建服务客户端
为了以编程方式进行访问Amazon Web Services,SDK 使用每个客户端类/对象Amazon Web Service。例如,如果您的应用程序需要访问 Amazon EC2,则您的应用程序会创建一个 Amazon EC2 客户端对象来连接该服务。然后,您可以使用服务客户端向其发出请求Amazon Web Service。服务客户端对象是不可变的,因此您必须为向其发出请求的每个服务创建一个新客户端,并使用不同的配置向同一服务发出请求。
设置设置的优先顺序
全局设置配置大多数 SDK 支持的功能、凭证提供者和其他功能,这些功能会产生广泛影响Amazon Web Services。所有 SDK 都有一系列需要检查的地方(或来源)以查找全局设置的值。以下是设置查找优先级:
-
在代码中或服务客户端本身上设置的任何显式设置都优先于其他任何设置。
-
某些设置可以针对每个操作进行设置,并且可以根据需要为调用的每个操作进行更改。对于Amazon CLI或Amazon Tools for PowerShell,这些参数采用您在命令行上输入的每项操作参数的形式。对于 SDK,显式分配可以采用参数的形式,该参数是在实例化Amazon服务客户端或配置对象时设置的,有时是在调用单个 API 时设置的。
-
-
仅限 Java/Kotlin:有时会有 JVM 系统属性与该设置相关联。如果已设置,则该值将用于配置客户端。
-
系统会检查 环境变量。如果已设置,则该值将用于配置客户端。
-
SDK 先检查共享
credentials
文件,然后检查共享config
文件。如果存在该设置,则 SDK 会使用该设置。AWS_PROFILE
环境变量或aws.profile
系统属性可用于指定 SDK 加载的配置文件。 -
最后使用 SDK 代码库提供的任何默认值。
如果config
文件和文件中都存在同一配置credentials
文件的设置,则使用credentials
文件中的值代替config
文件中的值。
某些 SDK 和工具的检查顺序可能不同。此外,某些 SDK 和工具支持其他存储和检索参数的方法。例如,Amazon SDK for .NET支持一个名为 SDK 商店的额外来源。有关 SDK 或工具独有的提供商的更多信息,请参阅该 SDK 或工具的文档。
顺序决定了哪些方法优先并优先于其他方法。例如,如果您在共享config
文件中设置了default
配置文件,则只有在 SDK 或工具先检查其他位置后才能找到和使用该配置文件。这意味着,如果您在credentials
文件中输入设置,则使用该设置代替config
文件中的设置。如果您使用设置和值配置环境变量,它将覆盖credentials
和config
文件中的该设置。最后,对单个操作(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。
环境变量列表
下表列出了大多数开发工具包支持的环境变量。它们是全球性的,影响所有人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 终端节点 |