

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

# Resource-based 政策
<a name="pca-rbp"></a>

Resource-based 策略是您创建并手动附加到资源（在本例中为私有 CA）而不是用户身份或角色的权限策略。或者，与其创建自己的策略，不如使用 AWS 托管策略 AWS 私有 CA。通过 AWS RAM 应用基于资源的策略， AWS 私有 CA 管理员可以直接或通过 AWS Organizations与其他 AWS 账户中的用户共享对 CA 的访问权限。或者， AWS 私有 CA 管理员可以使用 PCA API [PutPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_PutPolicy.html)、[GetPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetPolicy.html)和或相应的 AWS CLI 命令 p [ut-policy [DeletePolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePolicy.html)、get-](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/put-policy.html) policy [和 del [ete-pol](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/get-policy.html) icy 来应用和管理基于资源的策略](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/delete-policy.html)。

有关基于资源的策略的一般信息，请参阅[Identity-Based策略和 Resource-Based 策略以及](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)[使用策略控制访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html)。

要查看的基于资源的 AWS 托管策略列表 AWS 私有 CA，请导航到 AWS Resource Access Manager 控制台中的[托管权限库](https://console.aws.amazon.com/ram/home#Permissions:)，然后搜索。**CertificateAuthority**与任何策略一样，在应用之前，我们建议在测试环境中应用该策略，以确保其符合您的要求。

AWS 私有 CA 还支持 RAM 客户托管权限，允许您定义以下集合中的自定义操作组合：`DescribeCertificateAuthority``GetCertificate`、`GetCertificateAuthorityCertificate`、`ListPermissions`、`ListTags`、`IssueCertificate`、和`RevokeCertificate`。客户托管权限使您可以灵活地授予最低权限访问权限，例如，向某些账户授予只读访问权限，同时允许其他账户颁发和吊销证书。有关更多信息，请参阅 [RAM 中的客户托管权限](pca-cmp.md)。

AWS Certificate Manager (ACM) 对私有 CA 具有跨账户共享访问权限的用户可以颁发由 CA 签署的托管证书。当您授予`IssueCertificate`操作权限时，可以通过向策略中添加`acm-pca:TemplateArn`条件来限制用于证书颁发的证书模板。

## 策略示例
<a name="rbp-policy-examples"></a>

本节提供了满足各种需求的跨账户策略示例。在所有情况下，都使用以下命令模式来应用策略：

```
$ aws acm-pca put-policy \
   --region {{region}} \
   --resource-arn arn:{{aws}}:acm-pca:{{us-east-1}}:{{111122223333}}:certificate-authority/{{11223344-1234-1122-2233-112233445566}} \
   --policy file:///{{[path]}}/{{policyN.json}}
```

除了指定 CA 的 ARN 之外，管理员还提供一个 AWS 账户 ID 或一个将被授予对 CA 的访问权限的 AWS Organizations ID。为了便于阅读，以下每项策略的 JSON 都被格式化为文件，但也可以作为内联 CLI 参数提供。

**注意**  
必须严格遵循下面显示的基于 JSON 资源的策略的结构。客户只能配置委托人的 ID 字段（ AWS 账号或 Org AWS anizations ID）和 CA ARN。

1. **文件：policy1.json – 与不同账户中的用户共享对 CA 的访问权限** 

   {{555555555555}}替换为共享 CA 的 AWS 账户 ID。

   对于资源 ARN，请用您自己的值替换以下内容：
   + `{{aws}}`-分 AWS 区。例如，、`aws``aws-us-gov`、`aws-cn`、等。
   + `{{us-east-1}}`-资源可用 AWS 的地区，例如`us-west-1`。
   + `{{111122223333}}`-资源所有者的 AWS 账户 ID。
   + `{{11223344-1234-1122-2233-112233445566}}`-证书颁发机构的资源 ID。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
               "Sid": "{{ExampleStatementID}}",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "{{555555555555}}"
               },
               "Action": [
                   "acm-pca:DescribeCertificateAuthority",
                   "acm-pca:GetCertificate",
                   "acm-pca:GetCertificateAuthorityCertificate",
                   "acm-pca:ListPermissions",
                   "acm-pca:ListTags"
               ],
               "Resource": "arn:aws:acm-pca:{{us-east-1}}:{{123456789012}}:certificate-authority/{{CA_ID}}"
           },
           {
               "Sid": "{{ExampleStatementID2}}",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "{{555555555555}}"
               },
               "Action": [
                   "acm-pca:IssueCertificate"
               ],
               "Resource": "arn:aws:acm-pca:{{us-east-1}}:{{123456789012}}:certificate-authority/{{CA_ID}}",
               "Condition": {
                   "StringEquals": {
                       "acm-pca:TemplateArn": "arn:aws:acm-pca:::template/EndEntityCertificate/V1"
                   }
               }
           }
       ]
   }
   ```

------

1. **文件：policy2.json — 通过共享对 CA 的访问权限 AWS Organizations**

   

   {{o-a1b2c3d4z5}}替换为 AWS Organizations 身份证。

   对于资源 ARN，请用您自己的值替换以下内容：
   + `{{aws}}`-分 AWS 区。例如，、`aws``aws-us-gov`、`aws-cn`、等。
   + `{{us-east-1}}`-资源可用 AWS 的地区，例如`us-west-1`。
   + `{{111122223333}}`-资源所有者的 AWS 账户 ID。
   + `{{11223344-1234-1122-2233-112233445566}}`-证书颁发机构的资源 ID。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "{{ExampleStatementID3}}",
               "Effect": "Allow",
               "Principal": "*",
               "Action": "acm-pca:IssueCertificate",
               "Resource":"arn:aws:acm-pca:{{us-east-1}}:{{123456789012}}:certificate-authority/{{CA_ID}}",
               "Condition": {
                   "StringEquals": {
                       "acm-pca:TemplateArn": "arn:aws:acm-pca:::template/EndEntityCertificate/V1",
                       "aws:PrincipalOrgID": "{{o-a1b2c3d4z5}}"
                   },
                   "StringNotEquals": {
                       "aws:PrincipalAccount": "{{111122223333}}"
                   }
               }
           },
           {
               "Sid": "{{ExampleStatementID4}}",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "acm-pca:DescribeCertificateAuthority",
                   "acm-pca:GetCertificate",
                   "acm-pca:GetCertificateAuthorityCertificate",
                   "acm-pca:ListPermissions",
                   "acm-pca:ListTags"
               ],
               "Resource":"arn:aws:acm-pca:{{us-east-1}}:{{123456789012}}:certificate-authority/{{CA_ID}}",
               "Condition": {
                   "StringEquals": {
                       "aws:PrincipalOrgID": "{{o-a1b2c3d4z5}}"
                   },
                   "StringNotEquals": {
                       "aws:PrincipalAccount": "{{111122223333}}"
                   }
               }
           }
       ]
   }
   ```

------