

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

# 在中使用基于证书的访问控制的关键概念 AWS
<a name="concepts"></a>

中基于证书的访问控制 AWS 需要了解几个相互依赖的身份验证和授权概念。例如，最低权限原则决定了通过基于证书的身份验证授予的权限范围，这直接影响 AWS Identity and Access Management (IAM) 角色和策略的设计。基于证书的身份验证本身依赖于针对已配置的信任锚的 X.509 证书验证，信任锚定义了证书验证的加密信任链。通过此过程生成的临时安全证书具有特定的生命周期特征，这些特征会影响会话管理和凭证轮换策略。此外，还 AWS Identity and Access Management Roles Anywhere 实现了双层权限模型，其中 IAM 角色策略和配置文件配置都必须授权访问权限。如果不了解这些概念是如何交互的，实施可能会导致身份验证失败、访问权限过高或证书验证链中的安全漏洞。这些概念构成了在基于证书 AWS 的访问控制系统中正确配置信任关系、权限边界和凭证生命周期所需的技术基础。

**Topics**
+ [最低权限](#concepts-least-privilege)
+ [基于证书的身份验证](#concepts-certificate-based-authentication)
+ [信任锚点和信任模型](#concepts-trust-models)
+ [临时安全凭证](#concepts-temp-sec-creds)
+ [IAM 中的双层权限](#concepts-dual-layers-permissions)
+ [AWS 凭证助手](#concepts-credential-helper)

## 最低权限
<a name="concepts-least-privilege"></a>

*最低权限*原则是一种安全概念，它建议向用户、程序或系统授予执行任务所需的最低访问*权限（或权限*）级别。指导思想很简单——实体拥有的权限越少，遭受恶意或意外损害的风险就越低。

在的背景下 AWS，这一原则特别重要。 AWS 提供各种资源和服务，从虚拟机到存储资源。在构建和管理 AWS 基础架构时，应用最低权限原则可确保每个实体（用户、服务或应用程序）仅拥有正常运行所需的权限，仅此而已。

在中实现最低权限 AWS 可带来以下好处：
+ **安全**-通过限制访问权限，可以减少安全漏洞的潜在影响。如果用户或服务拥有最低权限，则损害范围就会大大缩小。
+ **合规性** — 许多监管框架都要求严格的访问控制。遵守最低权限原则可以帮助您满足这些合规性要求。
+ **操作简单**-管理权限可能变得复杂。应用最低权限可以使配置尽可能简单和易于管理。

## 基于证书的身份验证
<a name="concepts-certificate-based-authentication"></a>

基于证书的身份验证使用数字证书来验证设备、服务或应用程序的身份。X.509 证书包含标识实体的属性，并由受信任的证书颁发机构签名。这种身份验证方法消除了对静态凭据的需求，并提供了一种加密安全的方法来建立信任。

基于身份的身份验证依赖于与 IAM [角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)或[用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)直接关联的证书，而基于证书的身份验证则使用 X.509 证书来确定身份。基于证书的身份验证通过提供更强的安全态势、自动凭证轮换以及对可用于精细访问控制的属性进行编码的能力，在混合环境中提供了优势。

## 信任锚点和信任模型
<a name="concepts-trust-models"></a>

您可以通过创建信任*锚来建立 IAM Roles Anywhere 与您的证书颁发机构 (CA) 之间的信任*。信任锚是对外部 CA 来源的引用[AWS 私有 CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html)或对外部 CA 来源的引用。通过使用可信 CA 颁发的证书来换取临时证书，使用信任锚以外的工作负载通过信任锚进行 AWS 身份 AWS 验证。可以将多个信任锚合而为一 AWS 账户。有关更多信息，请参阅[IAM Roles Anywhere 信任模型](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/trust-model.html)。*信任模型*定义了如何验证证书以及成功进行身份验证需要哪些证书属性。

## 临时安全凭证
<a name="concepts-temp-sec-creds"></a>

*临时安全证书*提供对 AWS 资源的限时访问权限，通常持续几分钟到几小时不等。与长期访问密钥不同，这些证书会自动过期。这大大降低了凭据泄露的风险，并简化了分布式系统的访问管理。有关临时证书的更多信息，请参阅 IAM 文档中的[要求工作负载使用具有 IAM 角色的临时证书才能访问 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-workloads-use-roles)最佳实践。

## IAM 中的双层权限
<a name="concepts-dual-layers-permissions"></a>

IAM Roles Anywhere 通过 IAM 角色和配置文件的组合实现双层权限模型。在*配置文件*中，您可以定义 IAM 会话策略来限制为会话创建的权限。一个配置文件可以有多个 IAM 角色，但只能有一个会话策略。双层权限模型要求在授予访问权限之前在两层都明确允许权限，从而增强了安全性。以下是两层：
+ I *AM 角色层*定义了以下内容：
  + 确定哪个实体可以担任该角色的信任策略
  + 权限策略，用于指定角色可以访问哪些 AWS 资源以及可以执行哪些操作
  + 可以根据特定条件进一步限制访问权限的条件元素
+ *IAM Roles Anywhere 配置文件层*执行以下操作：
  + 定义可以通过哪些 IAM 角色担任 IAM Roles Anywhere
  + 为角色假设提供额外的控件
  + 充当权限筛选器，即使 IAM 角色本身允许更广泛的访问权限

例如，如果 IAM 角色允许访问亚马逊简单存储服务 (Amazon S3) Simple Storage Service 和 Amazon DynamoDB，但该配置文件仅允许访问 Amazon S3，则该应用程序只能访问亚马逊 S3 资源。这种双层方法通过要求两层都具有明确的权限来强制执行最小权限原则。

## AWS 凭证助手
<a name="concepts-credential-helper"></a>

通过使用的 [Credential Helper](https://github.com/aws/rolesanywhere-credential-helper) AWS Command Line Interface (GitHub AWS CLI) IAM Roles Anywhere，您可以通过 () 定义在允许应用程序访问 AWS 资源时要使用的信任锚点、配置文件和角色。以下是使用 “ AWS 凭据助手” 工具的调用示例：

```
./aws_signing_helper credential-process 
   \--certificate <Path to certificate>
   \--private-key <Path to private key> 
   \--trust-anchor-arn <Trust anchor ARN> 
   \--profile-arn <Profile 1 ARN>
   \--role-arn <Role 1 ARN>
```

该工具与该语言中可用的`credential_process`功能兼容 SDKs。与 S AWS DK 一起使用时，这些凭据会在到期前自动刷新，无需额外实施即可续订凭证。Credential Helper 管理使用证书创建签名并调用端点获取会话凭证的过程。然后，它以标准 JSON 格式将临时安全证书返回给调用进程。

有关更多信息，请参阅[从获取临时安全证书 IAM Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html)。