

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

# 为 AWS Clean Rooms ML 设置服务角色
<a name="ml-roles"></a>

执行相似建模所需的角色与使用自定义模型所需的角色不同。以下各节描述了执行每项任务所需的角色。

**Topics**
+ [为相似建模设置服务角色](#aws-model-roles)
+ [为自定义建模设置服务角色](#custom-model-roles)

## 为相似建模设置服务角色
<a name="aws-model-roles"></a>

**Topics**
+ [创建服务角色以读取训练数据](#ml-create-role-training)
+ [创建服务角色以写入相似细分](#ml-create-role-write-segment)
+ [创建服务角色以读取种子数据](#ml-create-role-read-seed)

### 创建服务角色以读取训练数据
<a name="ml-create-role-training"></a>

AWS Clean Rooms 使用服务角色读取训练数据。如果您具有必要的 IAM 权限，则可以使用控制台创建此角色。如果您不具备 `CreateRole` 权限，请要求您的管理员创建服务角色。

**创建服务角色以训练数据集**

1. 使用您的管理员账户登录 IAM 控制台 ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))。

1. 在**访问管理**下，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**中，选择 **JSON** 选项卡，然后复制粘贴以下策略。
**注意**  
以下示例策略支持读取 AWS Glue 元数据及其相应的 Amazon S3 数据所需的权限。但是，您可能需要修改此策略，具体取决于您设置 S3 数据的方式。该策略不包含用于解密数据的 KMS 密钥。  
您的 AWS Glue 资源和底层 Amazon S3 资源必须与 AWS Clean Rooms 协作 AWS 区域 相同。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetDatabase",
                   "glue:GetDatabases",
                   "glue:GetTable",
                   "glue:GetTables",
                   "glue:GetPartitions",
                   "glue:GetPartition",
                   "glue:BatchGetPartition",
                   "glue:GetUserDefinedFunctions"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:111122223333:database/databases",
                   "arn:aws:glue:us-east-1:111122223333:table/databases/tables",
                   "arn:aws:glue:us-east-1:111122223333:catalog",
                   "arn:aws:glue:us-east-1:111122223333:database/default"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:CreateDatabase"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:111122223333:database/default"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucket"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:ResourceAccount": [
                           "111122223333"
                       ]
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketFolders/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:ResourceAccount": [
                           "111122223333"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

   如果您需要使用 KMS 密钥解密数据，请将以下 AWS KMS 语句添加到之前的模板中：

   ```
   {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
               ],
               "Resource": [
                   "arn:aws:kms:region:accountId:key/keyId"
               ],
               "Condition": {
                   "ArnLike": {
                           "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucketFolders*"
                   }
               }
           }
       ]
   }
   ```

1. 用你自己的信息替换每一个*placeholder*信息：
   + *region* - AWS 区域的名称。例如 **us-east-1**。
   + *accountId*— S3 存储桶所在的 AWS 账户 ID。
   + *database/databases**table/databases/tables*、*catalog*、和 *database/default* — AWS Clean Rooms 需要访问的训练数据的位置。
   + *bucket*— S3 存储桶的**亚马逊资源名称 (ARN)**。**Amazon 资源名称 (ARN)** 可在 Amazon S3 存储桶的**属性**选项卡上找到。
   + *bucketFolders*— S3 存储桶中 AWS Clean Rooms 需要访问的特定文件夹的名称。

1. 选择**下一步**。

1. 对于**查看并创建**，输入**策略名称**和**描述**，然后查看**摘要**。

1. 选择**创建策略**。

   您已经为创建了策略 AWS Clean Rooms。

1. 在 **Access management**（访问管理）下，请选择 **Roles**（角色）。

   通过使用**角色**，您可以创建短期凭证，建议这样做以提高安全性。您也可以选择**用户**来创建长期凭证。

1. 选择**创建角色**。

1. 在**创建角色**向导中，对于**可信实体类型**，选择**自定义信任策略**。

1. 将以下自定义信任策略复制粘贴到 JSON 编辑器中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowAssumeRole",
               "Effect": "Allow",
               "Principal": {
                   "Service": "cleanrooms-ml.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEqualsIfExists": { 
                       "aws:SourceAccount": ["111122223333"]
                   },
                   "ArnLikeIfExists": { 
                       "aws:SourceArn": "arn:aws:cleanrooms-ml:us-east-1:111122223333:training-dataset/*"
                   }
               }
           }
       ]
   }
   ```

------

   永远`SourceAccount`是你的 AWS 账户。可以将 `SourceArn` 限制为特定的训练数据集，但仅在创建该数据集之后。由于您还不知道训练数据集 ARN，因此在此处指定了通配符。

   *accountId*是 AWS 账户 包含训练数据的 ID。

1. 选择**下一步**，在**添加权限**下面，输入您刚刚创建的策略的名称。（您可能需要重新加载页面。）

1. 选中您创建的策略旁边的复选框，然后选择**下一步**。

1. 对于**命名、查看和创建**，输入**角色名称**和**描述**。
**注意**  
**角色名称**必须与授予可以查询和接收结果的成员和成员角色的 `passRole` 权限中的模式相匹配。

   1. 查看**选择受信任的实体**，并在必要时进行编辑。

   1. 在**添加权限**中查看权限，并在必要时进行编辑。

   1. 查看**标签**，并在必要时添加标签。

   1. 选择**创建角色**。

您已经为创建了服务角色 AWS Clean Rooms。

### 创建服务角色以写入相似细分
<a name="ml-create-role-write-segment"></a>

AWS Clean Rooms 使用服务角色将相似的区段写入存储桶。如果您具有必要的 IAM 权限，则可以使用控制台创建此角色。如果您不具备 `CreateRole` 权限，请要求您的管理员创建服务角色。

**创建服务角色以写入相似细分**

1. 使用您的管理员账户登录 IAM 控制台 ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))。

1. 在**访问管理**下，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**中，选择 **JSON** 选项卡，然后复制粘贴以下策略。
**注意**  
以下示例策略支持读取 AWS Glue 元数据及其相应的 Amazon S3 数据所需的权限。但是，您可能需要修改此政策，具体取决于您设置 Amazon S3 数据的方式。该策略不包含用于解密数据的 KMS 密钥。  
您的 AWS Glue 资源和底层 Amazon S3 资源必须与 AWS Clean Rooms 协作 AWS 区域 相同。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
       {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::buckets"
               ],
               "Condition":{
                   "StringEquals":{
                       "s3:ResourceAccount":[
                           "accountId"
                       ]
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketFolders/*"
               ],
               "Condition":{
                   "StringEquals":{
                       "s3:ResourceAccount":[
                           "accountId"
                       ]
                   }
               }
           }
     ]
   }
   ```

------

   如果您需要使用 KMS 密钥加密数据，请将以下 AWS KMS 语句添加到模板中：

   ```
   {
               "Effect": "Allow",
               "Action": [
                   "kms:Encrypt",
                   "kms:GenerateDataKey*",
                   "kms:ReEncrypt*",
               ],
               "Resource": [
                   "arn:aws:kms:region:accountId:key/keyId"
               ],
               "Condition": {
                   "ArnLike": {
                           "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucketFolders*"
                   }
               }
           }
     ]
   }
   ```

1. 用你自己的信息替换每一个*placeholder*信息：
   + *buckets*— S3 存储桶的**亚马逊资源名称 (ARN)**。**Amazon 资源名称 (ARN)** 可在 Amazon S3 存储桶的**属性**选项卡上找到。
   + *accountId*— S3 存储桶所在的 AWS 账户 ID。
   + *bucketFolders*— S3 存储桶中 AWS Clean Rooms 需要访问的特定文件夹的名称。
   + *region* - AWS 区域的名称。例如 **us-east-1**。
   + *keyId*— 加密数据所需的 KMS 密钥。

1. 选择**下一步**。

1. 对于**查看并创建**，输入**策略名称**和**描述**，然后查看**摘要**。

1. 选择**创建策略**。

   您已经为创建了策略 AWS Clean Rooms。

1. 在 **Access management**（访问管理）下，请选择 **Roles**（角色）。

   通过使用**角色**，您可以创建短期凭证，建议这样做以提高安全性。您也可以选择**用户**来创建长期凭证。

1. 选择**创建角色**。

1. 在**创建角色**向导中，对于**可信实体类型**，选择**自定义信任策略**。

1. 将以下自定义信任策略复制粘贴到 JSON 编辑器中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowAssumeRole",
               "Effect": "Allow",
               "Principal": {
                   "Service": "cleanrooms-ml.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEqualsIfExists": { 
                       "aws:SourceAccount": ["111122223333"]
   
                   },
                   "ArnLikeIfExists": { 
                       "aws:SourceArn": "arn:aws:cleanrooms-ml:us-east-1:111122223333:configured-audience-model/*"
                   }
               }
           }
       ]
   }
   ```

------

   永远`SourceAccount`是你的 AWS 账户。可以将 `SourceArn` 限制为特定的训练数据集，但仅在创建该数据集之后。由于您还不知道训练数据集 ARN，因此在此处指定了通配符。

1. 选择**下一步**。

1. 选中您创建的策略旁边的复选框，然后选择**下一步**。

1. 对于**命名、查看和创建**，输入**角色名称**和**描述**。
**注意**  
**角色名称**必须与授予可以查询和接收结果的成员和成员角色的 `passRole` 权限中的模式相匹配。

   1. 查看**选择受信任的实体**，并在必要时进行编辑。

   1. 在**添加权限**中查看权限，并在必要时进行编辑。

   1. 查看**标签**，并在必要时添加标签。

   1. 选择**创建角色**。

您已经为创建了服务角色 AWS Clean Rooms。

### 创建服务角色以读取种子数据
<a name="ml-create-role-read-seed"></a>

AWS Clean Rooms 使用服务角色读取种子数据。如果您具有必要的 IAM 权限，则可以使用控制台创建此角色。如果您不具备 `CreateRole` 权限，请要求您的管理员创建服务角色。

**创建服务角色以读取存储在 S3 存储桶中的种子数据。**

1. 使用您的管理员账户登录 IAM 控制台 ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))。

1. 在**访问管理**下，选择**策略**。

1. 选择 **Create policy (创建策略)**。

1. 在**策略编辑器**中，选择 **JSON** 选项卡，然后复制粘贴以下策略之一。
**注意**  
以下示例策略支持读取 AWS Glue 元数据及其相应的 Amazon S3 数据所需的权限。但是，您可能需要修改此政策，具体取决于您设置 Amazon S3 数据的方式。该策略不包含用于解密数据的 KMS 密钥。  
您的 AWS Glue 资源和底层 Amazon S3 资源必须与 AWS Clean Rooms 协作 AWS 区域 相同。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::buckets"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:ResourceAccount": [
                           "accountId"
                       ]
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketFolders/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:ResourceAccount": [
                           "accountId"
                       ]
                   }
               }
           }
       ]
   }
   ```

------
**注意**  
以下示例策略支持读取 SQL 查询结果并将其用作输入数据所需的权限。但是，您可能需要修改此策略，具体取决于查询的结构。该策略不包含用于解密数据的 KMS 密钥。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCleanRoomsStartQuery",
               "Effect": "Allow",
               "Action": [
                   "cleanrooms:GetCollaborationAnalysisTemplate",
                   "cleanrooms:GetSchema",
                   "cleanrooms:StartProtectedQuery"
               ],
               "Resource": "*"
           },
           {
               "Sid": "AllowCleanRoomsGetAndUpdateQuery",
               "Effect": "Allow",
               "Action": [
                   "cleanrooms:GetProtectedQuery",
                   "cleanrooms:UpdateProtectedQuery"
               ],
               "Resource": [
                   "arn:aws:cleanrooms:us-east-1:111122223333:membership/queryRunnerMembershipId"
               ]
           }
       ]
   }
   ```

------

   如果您需要使用 KMS 密钥解密数据，请将以下 AWS KMS 语句添加到模板中：

   ```
   {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey"
               ],
               "Resource": [
                   "arn:aws:kms:region:accountId:key/keyId"
               ],
               "Condition": {
                   "ArnLike": {
                           "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucketFolders*"
                   }
               }
           }
     ]
   }
   ```

1. 用你自己的信息替换每一个*placeholder*信息：
   + *buckets*— S3 存储桶的**亚马逊资源名称 (ARN)**。**Amazon 资源名称 (ARN)** 可在 Amazon S3 存储桶的**属性**选项卡上找到。
   + *accountId*— S3 存储桶所在的 AWS 账户 ID。
   + *bucketFolders*— S3 存储桶中 AWS Clean Rooms 需要访问的特定文件夹的名称。
   + *region* - AWS 区域的名称。例如 **us-east-1**。
   + *queryRunnerAccountId*— 将运行查询的账户的 AWS 账户 ID。
   + *queryRunnerMembershipId*— 可以查询的成员的会员 **ID**。可以在协作的**详细信息**选项卡上找到**成员身份 ID**。这样可以确保 AWS Clean Rooms 只有当该成员在此协作中运行分析时才担任该角色。
   + *keyId*— 加密数据所需的 KMS 密钥。

1. 选择**下一步**。

1. 对于**查看并创建**，输入**策略名称**和**描述**，然后查看**摘要**。

1. 选择**创建策略**。

   您已经为创建了策略 AWS Clean Rooms。

1. 在 **Access management**（访问管理）下，请选择 **Roles**（角色）。

   通过使用**角色**，您可以创建短期凭证，建议这样做以提高安全性。您也可以选择**用户**来创建长期凭证。

1. 选择**创建角色**。

1. 在**创建角色**向导中，对于**可信实体类型**，选择**自定义信任策略**。

1. 将以下自定义信任策略复制粘贴到 JSON 编辑器中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowAssumeRole",
               "Effect": "Allow",
               "Principal": {
                   "Service": "cleanrooms-ml.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEqualsIfExists": {
                       "aws:SourceAccount": ["111122223333"]
   
                   },
                   "ArnLikeIfExists": { 
                       "aws:SourceArn": "arn:aws:cleanrooms-ml:us-east-1:111122223333:audience-generation-job/*"
                   }
               }
           }
       ]
   }
   ```

------

   永远`SourceAccount`是你的 AWS 账户。可以将 `SourceArn` 限制为特定的训练数据集，但仅在创建该数据集之后。由于您还不知道训练数据集 ARN，因此在此处指定了通配符。

1. 选择**下一步**。

1. 选中您创建的策略旁边的复选框，然后选择**下一步**。

1. 对于**命名、查看和创建**，输入**角色名称**和**描述**。
**注意**  
**角色名称**必须与授予可以查询和接收结果的成员和成员角色的 `passRole` 权限中的模式相匹配。

   1. 查看**选择受信任的实体**，并在必要时进行编辑。

   1. 在**添加权限**中查看权限，并在必要时进行编辑。

   1. 查看**标签**，并在必要时添加标签。

   1. 选择**创建角色**。

您已经为创建了服务角色 AWS Clean Rooms。

## 为自定义建模设置服务角色
<a name="custom-model-roles"></a>

**Topics**
+ [为自定义 ML 建模创建服务角色-机器学习配置](#ml-roles-custom-configure)
+ [创建服务角色以提供自定义 ML 模型](#ml-roles-custom-model-provider)
+ [创建用于查询数据集的服务角色](#ml-roles-custom-query-dataset)
+ [创建服务角色以创建已配置的表关联](#ml-roles-custom-configure-table)

### 为自定义 ML 建模创建服务角色-机器学习配置
<a name="ml-roles-custom-configure"></a>

AWS Clean Rooms 使用服务角色来控制谁可以创建自定义 ML 配置。如果您具有必要的 IAM 权限，则可以使用控制台创建此角色。如果您不具备 `CreateRole` 权限，请要求您的管理员创建服务角色。

此角色允许您使用 Pu [t MLConfiguration](https://docs.aws.amazon.com/cleanrooms-ml/latest/APIReference/API_PutMLConfiguration.html) 操作。

**创建服务角色以允许创建自定义 ML 配置**

1. 使用您的管理员账户登录 IAM 控制台 ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))。

1. 在**访问管理**下，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**中，选择 **JSON** 选项卡，然后复制粘贴以下策略。
**注意**  
以下示例策略支持访问和向 S3 存储桶写入数据以及发布 CloudWatch 指标所需的权限。但是，您可能需要修改此政策，具体取决于您设置 Amazon S3 数据的方式。该策略不包含用于解密数据的 KMS 密钥。  
您的 Amazon S3 资源必须与 AWS Clean Rooms 协作资源 AWS 区域 相同。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowS3ObjectWriteForExport",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucket/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:ResourceAccount": [
                           "111122223333"
                       ]
                   }
               }
           },
           {
               "Sid": "AllowS3KMSEncryptForExport",
               "Effect": "Allow",
               "Action": [
                   "kms:Encrypt",
                   "kms:GenerateDataKey*"
               ],
               "Resource": [
                   "arn:aws:kms:us-east-1:111122223333:key/keyId"
               ],
               "Condition": {
                   "StringLike": {
                       "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket*"
                   }
               }
           },
           {
               "Sid": "AllowCloudWatchMetricsPublishingForTrainingJobs",
               "Action": "cloudwatch:PutMetricData",
               "Resource": "*",
               "Effect": "Allow",
               "Condition": {
                   "StringLike": {
                       "cloudwatch:namespace": "/aws/cleanroomsml/*"
                   }
               }
           },
           {
               "Sid": "AllowCloudWatchLogsPublishingForTrainingOrInferenceJobs",
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DescribeLogStreams",
                   "logs:PutLogEvents"
               ],
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/cleanroomsml/*"
               ]
           }
       ]
   }
   ```

------

1. 用你自己的信息替换每一个*placeholder*信息：
   + *bucket*— S3 存储桶的**亚马逊资源名称 (ARN)**。**Amazon 资源名称 (ARN)** 可在 Amazon S3 存储桶的**属性**选项卡上找到。
   + *region* - AWS 区域的名称。例如 **us-east-1**。
   + *accountId*— S3 存储桶所在的 AWS 账户 ID。
   + *keyId*— 加密数据所需的 KMS 密钥。

1. 选择**下一步**。

1. 对于**查看并创建**，输入**策略名称**和**描述**，然后查看**摘要**。

1. 选择**创建策略**。

   您已经为创建了策略 AWS Clean Rooms。

1. 在 **Access management**（访问管理）下，请选择 **Roles**（角色）。

   通过使用**角色**，您可以创建短期凭证，建议这样做以提高安全性。您也可以选择**用户**来创建长期凭证。

1. 选择**创建角色**。

1. 在**创建角色**向导中，对于**可信实体类型**，选择**自定义信任策略**。

1. 将以下自定义信任策略复制粘贴到 JSON 编辑器中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "cleanrooms-ml.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "111122223333"
                   },
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:cleanrooms:us-east-1:111122223333:membership/membershipID"
                   }
               }
           }
       ]
   }
   ```

------

   永远`SourceAccount`是你的 AWS 账户。可以将 `SourceArn` 限制为特定的训练数据集，但仅在创建该数据集之后。由于您还不知道训练数据集 ARN，因此在此处指定了通配符。

1. 选择**下一步**。

1. 选中您创建的策略旁边的复选框，然后选择**下一步**。

1. 对于**命名、查看和创建**，输入**角色名称**和**描述**。
**注意**  
**角色名称**必须与授予可以查询和接收结果的成员和成员角色的 `passRole` 权限中的模式相匹配。

   1. 查看**选择受信任的实体**，并在必要时进行编辑。

   1. 在**添加权限**中查看权限，并在必要时进行编辑。

   1. 查看**标签**，并在必要时添加标签。

   1. 选择**创建角色**。

您已经为创建了服务角色 AWS Clean Rooms。

### 创建服务角色以提供自定义 ML 模型
<a name="ml-roles-custom-model-provider"></a>

AWS Clean Rooms 使用服务角色来控制谁可以创建自定义 ML 模型算法。如果您具有必要的 IAM 权限，则可以使用控制台创建此角色。如果您不具备 `CreateRole` 权限，请要求您的管理员创建服务角色。

此角色允许您使用[CreateConfiguredModelAlgorithm](https://docs.aws.amazon.com/cleanrooms-ml/latest/APIReference/API_CreateConfiguredModelAlgorithm.html)操作。

**创建服务角色以允许成员提供自定义 ML 模型**

1. 使用您的管理员账户登录 IAM 控制台 ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))。

1. 在**访问管理**下，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**中，选择 **JSON** 选项卡，然后复制粘贴以下策略。
**注意**  
以下示例策略支持检索包含模型算法的 docker 镜像所需的权限。但是，您可能需要修改此政策，具体取决于您设置 Amazon S3 数据的方式。该策略不包含用于解密数据的 KMS 密钥。  
您的 Amazon S3 资源必须与 AWS Clean Rooms 协作资源 AWS 区域 相同。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowECRImageDownloadForTrainingAndInferenceJobs",
               "Effect": "Allow",
               "Action": [
                   "ecr:BatchGetImage",
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:GetDownloadUrlForLayer"
               ],
               "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/repoName"
           }
       ]
   }
   ```

------

1. 用你自己的信息替换每一个*placeholder*信息：
   + *region* - AWS 区域的名称。例如 **us-east-1**。
   + *accountId*— S3 存储桶所在的 AWS 账户 ID。
   + *repoName*— 包含您的数据的存储库的名称。

1. 选择**下一步**。

1. 对于**查看并创建**，输入**策略名称**和**描述**，然后查看**摘要**。

1. 选择**创建策略**。

   您已经为创建了策略 AWS Clean Rooms。

1. 在 **Access management**（访问管理）下，请选择 **Roles**（角色）。

   通过使用**角色**，您可以创建短期凭证，建议这样做以提高安全性。您也可以选择**用户**来创建长期凭证。

1. 选择**创建角色**。

1. 在**创建角色**向导中，对于**可信实体类型**，选择**自定义信任策略**。

1. 将以下自定义信任策略复制粘贴到 JSON 编辑器中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "cleanrooms-ml.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   始终`SourceAccount`是你 AWS 账户 的。`SourceArn`可以仅限于特定的训练数据集，但只能在创建该数据集之后。由于您还不知道训练数据集 ARN，因此在此处指定了通配符。

1. 选择**下一步**。

1. 选中您创建的策略旁边的复选框，然后选择**下一步**。

1. 对于**命名、查看和创建**，输入**角色名称**和**描述**。
**注意**  
**角色名称**必须与授予可以查询和接收结果的成员和成员角色的 `passRole` 权限中的模式相匹配。

   1. 查看**选择受信任的实体**，并在必要时进行编辑。

   1. 在**添加权限**中查看权限，并在必要时进行编辑。

   1. 查看**标签**，并在必要时添加标签。

   1. 选择**创建角色**。

您已经为创建了服务角色 AWS Clean Rooms。

### 创建用于查询数据集的服务角色
<a name="ml-roles-custom-query-dataset"></a>

AWS Clean Rooms 使用服务角色来控制谁可以查询将用于自定义 ML 建模的数据集。如果您具有必要的 IAM 权限，则可以使用控制台创建此角色。如果您不具备 `CreateRole` 权限，请要求您的管理员创建服务角色。

此角色允许您使用 “[创建MLInput频道](https://docs.aws.amazon.com/cleanrooms-ml/latest/APIReference/API_CreateMLInputChannel.html)” 操作。

**创建服务角色以允许成员查询数据集**

1. 使用您的管理员账户登录 IAM 控制台 ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))。

1. 在**访问管理**下，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**中，选择 **JSON** 选项卡，然后复制粘贴以下策略。
**注意**  
以下示例策略支持查询将用于自定义 ML 建模的数据集所需的权限。但是，您可能需要修改此政策，具体取决于您设置 Amazon S3 数据的方式。该策略不包含用于解密数据的 KMS 密钥。  
您的 Amazon S3 资源必须与 AWS Clean Rooms 协作资源 AWS 区域 相同。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCleanRoomsStartQueryForMLInputChannel",
               "Effect": "Allow",
               "Action": "cleanrooms:StartProtectedQuery",
               "Resource": "*"
           },
           {
               "Sid": "AllowCleanroomsGetSchemaAndGetAnalysisTemplateForMLInputChannel",
               "Effect": "Allow",
               "Action": [
                   "cleanrooms:GetSchema",
                   "cleanrooms:GetCollaborationAnalysisTemplate"
               ],
               "Resource": "*"
           },
           {
               "Sid": "AllowCleanRoomsGetAndUpdateQueryForMLInputChannel",
               "Effect": "Allow",
               "Action": [
                   "cleanrooms:GetProtectedQuery",
                   "cleanrooms:UpdateProtectedQuery"
               ],
               "Resource": [
                   "arn:aws:cleanrooms:us-east-1:111122223333:membership/queryRunnerMembershipId"
               ]
           }
       ]
   }
   ```

------

1. 用你自己的信息替换每一个*placeholder*信息：
   + *region* - AWS 区域的名称。例如 **us-east-1**。
   + *queryRunnerAccountId*— 将运行查询的账户的 AWS 账户 ID。
   + *queryRunnerMembershipId*— 可以查询的成员的会员 **ID**。可以在协作的**详细信息**选项卡上找到**成员身份 ID**。这样可以确保 AWS Clean Rooms 只有当该成员在此协作中运行分析时才担任该角色。

1. 选择**下一步**。

1. 对于**查看并创建**，输入**策略名称**和**描述**，然后查看**摘要**。

1. 选择**创建策略**。

   您已经为创建了策略 AWS Clean Rooms。

1. 在 **Access management**（访问管理）下，请选择 **Roles**（角色）。

   通过使用**角色**，您可以创建短期凭证，建议这样做以提高安全性。您也可以选择**用户**来创建长期凭证。

1. 选择**创建角色**。

1. 在**创建角色**向导中，对于**可信实体类型**，选择**自定义信任策略**。

1. 将以下自定义信任策略复制粘贴到 JSON 编辑器中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "cleanrooms-ml.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   始终`SourceAccount`是你 AWS 账户 的。`SourceArn`可以仅限于特定的训练数据集，但只能在创建该数据集之后。由于您还不知道训练数据集 ARN，因此在此处指定了通配符。

1. 选择**下一步**。

1. 选中您创建的策略旁边的复选框，然后选择**下一步**。

1. 对于**命名、查看和创建**，输入**角色名称**和**描述**。
**注意**  
**角色名称**必须与授予可以查询和接收结果的成员和成员角色的 `passRole` 权限中的模式相匹配。

   1. 查看**选择受信任的实体**，并在必要时进行编辑。

   1. 在**添加权限**中查看权限，并在必要时进行编辑。

   1. 查看**标签**，并在必要时添加标签。

   1. 选择**创建角色**。

您已经为创建了服务角色 AWS Clean Rooms。

### 创建服务角色以创建已配置的表关联
<a name="ml-roles-custom-configure-table"></a>

AWS Clean Rooms 使用服务角色来控制谁可以创建已配置的表关联。如果您具有必要的 IAM 权限，则可以使用控制台创建此角色。如果您不具备 `CreateRole` 权限，请要求您的管理员创建服务角色。

此角色允许您使用 CreateConfiguredTableAssociation 操作。

**创建服务角色以允许创建已配置的表关联**

1. 使用您的管理员账户登录 IAM 控制台 ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))。

1. 在**访问管理**下，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**中，选择 **JSON** 选项卡，然后复制粘贴以下策略。
**注意**  
以下示例策略支持创建已配置的表关联。但是，您可能需要修改此政策，具体取决于您设置 Amazon S3 数据的方式。该策略不包含用于解密数据的 KMS 密钥。  
您的 Amazon S3 资源必须与 AWS Clean Rooms 协作资源 AWS 区域 相同。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/KMS-key-ID",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucket-name",
               "Effect": "Allow"
           },
           {
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::bucket-name/*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "glue:GetDatabase",
                   "glue:GetDatabases",
                   "glue:GetTable",
                   "glue:GetTables",
                   "glue:GetPartitions",
                   "glue:GetPartition",
                   "glue:BatchGetPartition"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:111122223333:catalog",
                   "arn:aws:glue:us-east-1:111122223333:database/Glue database name",
                   "arn:aws:glue:us-east-1:111122223333:table/Glue database name/Glue table name"
               ],
               "Effect": "Allow"
           },
           {
               "Action": [
                   "glue:GetSchema",
                   "glue:GetSchemaVersion"
               ],
               "Resource": "*",
               "Effect": "Allow"
           }
       ]
   }
   ```

------
**替换占位符资源 ARNs**  
使用此策略时，必须将占位符资源标识符替换为实际 ARNs 资源的标识符：  
**AWS KMS 密钥资源**：*KMS-key-ID*替换为加密您的 Amazon S3 数据的实际 AWS KMS 密钥 ID。密钥必须位于拥有目录资源的同一个账户 (111122223333) 中。 AWS Glue 
**Amazon S3 存储桶资源**：*bucket-name*替换为包含您的 AWS Glue 表数据的 Amazon S3 存储桶的实际名称。请注意，Amazon S3 存储桶 ARNs 不包含账户， IDs 因为存储桶名称是全球唯一的。
**AWS Glue 资源**：将以下占位符替换为您的实际资源名称：  
*Glue database name*-您的 AWS Glue 数据库名称
*Glue table name*-你的 AWS Glue 桌子的名字
所有 AWS Glue 资源（目录、数据库和表）必须相同 AWS 账户 (111122223333)，以确保访问权限的一致性。此帐户应与拥有用于数据加密的 AWS KMS 密钥的帐户相同，从而为您的 AWS Clean Rooms 数据资源创建统一的安全边界。

1. 用你自己的信息替换每一个*placeholder*信息：
   + *KMS key used to encrypt the Amazon S3 data*— 用于加密 Amazon S3 数据的 KMS 密钥。要解密数据，您需要提供用于加密数据的 KMS 密钥。
   + *Amazon S3 bucket of AWS Glue table*— 包含包含您的数据的 AWS Glue 表的 Amazon S3 存储桶的名称。
   + *region* - AWS 区域的名称。例如 **us-east-1**。
   + *accountId*— 拥有数据的账户的 AWS 账户 ID。
   + *AWS Glue database name*— 包含您的数据的 AWS Glue 数据库的名称。
   + *AWS Glue table name*-包含您的数据的 AWS Glue 表的名称。

1. 选择**下一步**。

1. 对于**查看并创建**，输入**策略名称**和**描述**，然后查看**摘要**。

1. 选择**创建策略**。

   您已经为创建了策略 AWS Clean Rooms。

1. 在 **Access management**（访问管理）下，请选择 **Roles**（角色）。

   通过使用**角色**，您可以创建短期凭证，建议这样做以提高安全性。您也可以选择**用户**来创建长期凭证。

1. 选择**创建角色**。

1. 在**创建角色**向导中，对于**可信实体类型**，选择**自定义信任策略**。

1. 将以下自定义信任策略复制粘贴到 JSON 编辑器中。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "cleanrooms-ml.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   始终`SourceAccount`是你 AWS 账户 的。`SourceArn`可以仅限于特定的训练数据集，但只能在创建该数据集之后。由于您还不知道训练数据集 ARN，因此在此处指定了通配符。

1. 选择**下一步**。

1. 选中您创建的策略旁边的复选框，然后选择**下一步**。

1. 对于**命名、查看和创建**，输入**角色名称**和**描述**。
**注意**  
**角色名称**必须与授予可以查询和接收结果的成员和成员角色的 `passRole` 权限中的模式相匹配。

   1. 查看**选择受信任的实体**，并在必要时进行编辑。

   1. 在**添加权限**中查看权限，并在必要时进行编辑。

   1. 查看**标签**，并在必要时添加标签。

   1. 选择**创建角色**。

您已经为创建了服务角色 AWS Clean Rooms。