

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

# 创建项目策略文档
<a name="md-create-project-policy-document"></a>

Rekognition Custom Labels 使用基于资源的策略（称为*项目策略*）来管理模型版本的复制权限。项目策略是一个 JSON 格式的文档。

项目策略用于允许或拒绝将模型版本从源项目复制到目标项目的[主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal)权限。如果目标项目位于不同的 AWS 账户中，则需要项目政策。如果目标项目与源项目属于同一个 AWS 账户，而您想限制对特定模型版本的访问权限，则也需要使用项目策略。例如，您可能想拒绝向 AWS 账户中的特定 IAM 角色授予复制权限。

以下示例允许主体 `arn:aws:iam::111111111111:role/Admin` 复制模型版本 `arn:aws:rekognition:us-east-1:123456789012:project/my_project/version/test_1/1627045542080`。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Principal":{
        "AWS":"arn:aws:iam::111111111111:role/Admin"
      },
      "Action":"rekognition:CopyProjectVersion",
      "Resource":"arn:aws:rekognition:us-east-1:111111111111:project/my_project/version/test_1/1627045542080"
    }
  ]
}
```

------

**注意**  
`Action`、`Resource`、`Principal` 和 `Effect` 是项目策略文档中的必填字段。  
唯一支持的 `action` 是 `rekognition:CopyProjectVersion`。  
`NotAction`、`NotResource` 和 `NotPrincipal` 是禁止的字段，不得出现在项目策略文档中。

如果您未指定项目策略，则与源项目处于同一 AWS 账户的委托人仍然可以复制模型，前提是委托人具有授予调用权限的基于身份的策略（例如）。` AmazonRekognitionCustomLabelsFullAccess` `CopyProjectVersion`

以下过程会创建一个项目策略文档文件，您可将其与 [附加项目策略 (SDK)](md-attach-project-policy.md) 中的 Python 示例结合使用。如果您使用的是`put-project-policy` AWS CLI 命令，则可以以 JSON 字符串的形式提供项目策略。

**创建项目策略文档**

1. 在文本编辑器中，创建以下文档。更改以下值：
   + Effect：指定 `ALLOW` 可授予复制权限。指定 `DENY` 可拒绝复制权限。
   + Principal：更改为要允许或拒绝其对您在 `Resource` 中指定的模型版本进行访问的主体。例如，您可以为其他 AWS 账户指定 [AWS 账户的委托人](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts)。我们不限制您可以使用的主体。有关更多信息，请参阅[指定主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying)。
   + Resource：要指定其复制权限的模型版本的 Amazon 资源名称 (ARN)。如果要授予对源项目内所有模型版本的权限，请使用以下格式 `arn:aws:rekognition:region:account:project/source project/version/* `

1. 将项目策略保存到计算机中。

1. 按照[附加项目策略 (SDK)](md-attach-project-policy.md)中的说明将项目策略附加到源项目。