

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

# 为 IAM 用户创建单账户权限
<a name="assign-permissions"></a>

当 CA 管理员（即 CA 的所有者）和证书颁发者居住在同一个 AWS 账户中时，[最佳做法](ca-best-practices.md)是通过创建一个权限有限的 AWS Identity and Access Management (IAM) 用户，将颁发者和管理员角色分开。有关将 IAM 与 AWS 私有 CA权限一起使用的信息以及示例权限，请参阅[身份和访问管理 (IAM) Access Management 适用于 AWS 私有证书颁发机构](security-iam.md)。

**Single-account 案例 1：颁发非托管证书**  
在这种情况下，账户拥有者创建一个私有 CA，然后创建一个具有颁发由私有 CA 签名证书权限的 IAM 用户。IAM 用户通过调用 AWS 私有 CA `IssueCertificate` API 来颁发证书。

![颁发非托管证书](http://docs.aws.amazon.com/zh_cn/privateca/latest/userguide/images/ca_access_1_account_pca_api.png)


以这种方式颁发的证书未托管，这意味着管理员必须将其导出并安装在要使用的设备上。这些证书过期时还必须手动续订。使用此 API 颁发证书需要证书签名请求 (CSR) 和 AWS 私有 CA 由 [OpenSSL](https://www.openssl.org/) 或类似程序之外生成的密钥对。有关更多信息，请参阅 `IssueCertificate`[ 文档。](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html)

**Single-account 案例 2：通过 ACM 颁发托管证书**  
第二种情况涉及来自 ACM 和 PCA 的 API 操作。账户拥有者像以前一样创建私有 CA 和 IAM 用户。然后，账户拥有者向 ACM 服务主体[授予权限](create-CA.md#PcaCreateAcmPerms)以自动续订由此 CA 签名的所有证书。IAM 用户再次颁发证书，但这次是通过调用处理 CSR 和密钥生成的 ACM `RequestCertificate` API。该证书到期后，ACM 会自动执行续订工作流程。

![颁发托管证书](http://docs.aws.amazon.com/zh_cn/privateca/latest/userguide/images/ca_access_1_account_acm_api.png)


账户拥有者可以选择在创建 CA 期间或之后或使用 PCA `CreatePermission` API 通过管理控制台授予续订权限。通过此工作流程创建的托管证书可用于与 ACM 集成的 AWS 服务。

下一节包含授予续订权限的过程。

## 将证书续订权限分配给 ACM
<a name="PcaPermissions"></a>

借助 AWS Certificate Manager （ACM）中的[托管续订](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html)，您可以自动执行公有和私有证书的证书续订流程。为了让 ACM 自动续订私有 CA 生成的证书，*CA 本身*必须向 ACM 服务主体授予所有可能的权限。如果 ACM 不存在这些续订权限，则 CA 的拥有者（或授权代表）必须在每个私有证书过期时手动重新颁发该证书。

**重要**  
这些分配续订权限的过程仅在 CA 所有者和证书颁发者居住在同一个 AWS 账户中时适用。有关跨账户场景，请参阅 [附加跨账户存取策略](pca-ram.md)。

续订权限可在[私有 CA 创建](create-CA.md)期间委派，并且只要 CA 处于 `ACTIVE` 状态，即可在任何时间更改。

您可以从 [AWS 私有 CA 控制台](https://console.aws.amazon.com/acm-pca)、[AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/) 或 [AWS 私有 CA API](https://docs.aws.amazon.com/privateca/latest/APIReference/) 管理私有 CA 权限：

**向 ACM 分配私有 CA 权限（控制台）**

1. 登录您的 AWS 账户并打开 AWS 私有 CA 控制台，网址为[https://console.aws.amazon.com/acm-pca/home](https://console.aws.amazon.com/acm-pca/home)。

1. 在**私有证书颁发机构**页面上，从列表中选择您的私有 CA。

1. 选择**操作**、**配置 CA 权限**。

1. 选择**授权 ACM 访问以续订此账户请求的证书**。

1. 选择**保存**。

**在 AWS 私有 CA ()AWS CLI中管理 ACM 权限**  
使用 [create-permission](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/create-permission.html) 命令将权限分配给 ACM。您必须分配必要的权限（`IssueCertificate`、`GetCertificate` 和 `ListPermissions`）以使 ACM 能自动续订证书。

```
$ aws acm-pca create-permission \
     --certificate-authority-arn arn:aws:acm-pca:{{region}}:{{account}}:certificate-authority/{{CA_ID}} \
     --actions {{IssueCertificate}} {{GetCertificate}} {{ListPermissions}} \
     --principal acm.amazonaws.com
```

使用 [list-permissions](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/list-permissions.html) 命令列出 CA 委派的权限。

```
$ aws acm-pca list-permissions \
     --certificate-authority-arn arn:aws:acm-pca:{{region}}:{{account}}:certificate-authority/{{CA_ID}}
```

使用 [delete-per](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/delete-permission.html) mission 命令撤消 CA 分配给服务主体的权限。 AWS 

```
$ aws acm-pca delete-permission \
     --certificate-authority-arn arn:aws:acm-pca:{{region}}:{{account}}:certificate-authority/{{CA_ID}} \
     --principal acm.amazonaws.com
```