

# AWS Identity and Access Management 中的故障恢复能力
<a name="disaster-recovery-resiliency"></a>

AWS全球基础架构围绕AWS区域和可用区构建。AWS区域有多个在物理上独立且隔离的可用区，这些可用区通过延迟低、吞吐量高且冗余性高的网络连接在一起。有关 AWS 区域和可用区的更多信息，请参阅 [AWS 全球基础架构](https://aws.amazon.com/about-aws/global-infrastructure/)。

AWS Identity and Access Management（IAM）和 AWS Security Token Service（AWS STS）是可自我维持、基于区域的服务，可在全球范围内使用。

IAM 是一种非常关键的 AWS 服务。在 AWS 中执行的每项操作必须由 IAM 进行身份验证和授权。IAM 根据存储在 IAM 中的身份和策略检查每个请求，以确定是允许还是拒绝请求。IAM 的设计采用了单独的*控制面板*和*数据面板*，这样，即使在意外故障期间，服务也能进行身份验证。授权中使用的 IAM 资源（如角色和策略）存储在控制面板中。IAM 客户可以通过使用 `DeletePolicy` 和 `AttachRolePolicy` 等 IAM 操作来更改这些资源的配置。这些配置更改请求将发送到控制面板。所有商业 AWS 区域 都有一个 IAM 控制面板，位于美国东部（弗吉尼亚州北部）区域。随后，IAM 系统会在每个[已启用的 AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)中将配置更改传播到 IAM 数据面板。IAM 数据面板本质上是 IAM 控制面板配置数据的只读副本。每个 AWS 区域 都有一个完全独立的 IAM 数据面板实例，该实例对来自同一区域的请求执行身份验证和授权。在每个区域中，IAM 数据面板至少分布在三个可用区中，并且具有足够的容量来容忍可用区丢失而不会对客户造成任何损害。IAM 控制面板和数据面板都是为*零停机时间*而构建，所有软件更新和扩展操作均以对客户不可见的方式执行。

在[默认启用](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)的区域中，发往 AWS STS 全局端点的请求会自动在请求发起的同一区域中处理。在选择加入区域中，发往 AWS STS 全局端点的请求由单个 AWS 区域美国东部（弗吉尼亚州北部）处理。但是，您可以选择使用区域 AWS STS 端点来减少延迟或为应用程序提供额外冗余。要了解更多信息，请参阅[管理 AWS 区域中的 AWS STS](id_credentials_temp_enable-regions.md)。

某些事件可能会中断 AWS 区域 之间的网络通信。但是，即使您无法与全局 IAM 端点进行通信，AWS STS 仍然可以对 IAM 主体进行身份验证，并且 IAM 可以授权您的请求。中断通信的事件的具体详细信息将决定您访问 AWS 服务的能力。在大多数情况下，您可继续在 AWS 环境中使用 IAM 凭证。以下情况可能适用于中断通信的事件。

**IAM 用户的访问密钥**  
您可以在具有长期 [IAM 用户的访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)的区域中无限期地进行身份验证。当您使用 AWS Command Line Interface 和 API 时，您需要提供您的 AWS 访问密钥，以便 AWS 可以在编程请求中验证您的身份。  
作为[最佳实践](best-practices.md)，我们建议您的用户使用[临时凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)而不是长期访问密钥来登录。

**临时凭证**  
您可以使用 AWS STS 区域性[服务端点](https://docs.aws.amazon.com/general/latest/gr/sts.html#sts_region)[申请新的临时凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access.html)，凭证至少在 24 小时内有效。以下 API 操作会生成临时凭证。  
+ **AssumeRole**
+ **AssumeRoleWithWebIdentity**
+ **AssumeRoleWithSAML**
+ **GetFederationToken**
+ **GetSessionToken**

**主体和权限**  
+ 您可能无法在 IAM 中添加、修改或删除主体或权限。
+ 您的凭证可能无法反映您最近在 IAM 中应用的权限的更改。有关更多信息，请参阅 [我所做的更改可能不会立即可见](troubleshoot.md#troubleshoot_general_eventual-consistency)。

**AWS 管理控制台**  
+ 您可能可以作为 IAM 用户使用区域性登录端点登录 AWS 管理控制台。区域性登录端点具有以下 URL 格式。

  `https://{Account ID}.signin.aws.amazon.com/console?region={Region}`

  *示例：https://111122223333.signin.aws.amazon.com/console?region=us-west-2*
+ 您可能无法完成 [Universal 2nd Factor（U2F）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_enable_u2f.html)多重身份验证（MFA）。

## IAM 恢复能力的最佳实践
<a name="region-dependency-best-practices"></a>

AWS 已将恢复能力内置于 AWS 区域 和可用区。若您在与您的环境交互的系统中观察到有以下 IAM 最佳实践，您就可以利用这种恢复能力。

1. 使用 AWS STS 区域性[服务端点](https://docs.aws.amazon.com/general/latest/gr/sts.html#sts_region)而不是默认的全局端点。

1. 检查您的环境中是否存在例行创建或修改 IAM 资源的重要资源的配置，并准备使用现有 IAM 资源的回退解决方案。