

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

# 授予 IAM 使用亚马逊 G SageMaker round Truth 控制台的权限
<a name="sms-security-permission-console-access"></a>

要使用 SageMaker 人工智能控制台的 Ground Truth 区域，你需要向实体授予访问 SageMaker 人工智能和其他与 Ground Truth 交互的 Amazon 服务的权限。访问其他 Amazon 服务所需的权限取决于您的用例：
+ 所有使用案例都需要 Amazon S3 权限。这些权限必须授予对包含输入和输出数据的 Amazon S3 存储桶的访问权限。
+ Amazon Web Services Marketplace 需要权限才能使用供应商员工。
+ 私有工作团队设置需要 Amazon Cognito 权限。
+ Amazon KMS 需要权限才能查看可用于输出数据加密的可用 Amazon KMS 密钥。
+ 列出已有的执行角色或创建新角色都需要 IAM 权限。此外，您必须使用添加`PassRole`权限以允许 SageMaker AI 使用选择的执行角色来启动标注作业。

以下各部分列出了您可能希望授予角色使用 Ground Truth 的一个或多个功能的策略。

**Topics**
+ [Ground Truth 控制台权限](#sms-security-permissions-console-all)
+ [自定义标注工作流权限](#sms-security-permissions-custom-workflow)
+ [私有人力权限](#sms-security-permission-workforce-creation)
+ [供应商人力权限](#sms-security-permissions-workforce-creation-vendor)

## Ground Truth 控制台权限
<a name="sms-security-permissions-console-all"></a>

要向用户或角色授予使用 SageMaker AI 控制台的 Ground Truth 区域创建标签作业的权限，请将以下策略附加到该用户或角色。以下策略将向 IAM 角色授予使用[内置任务类型](https://docs.amazonaws.cn/sagemaker/latest/dg/sms-task-types.html)创建标注作业的权限。如果要创建自定义标注工作流，请将 [自定义标注工作流权限](#sms-security-permissions-custom-workflow) 中的策略添加到以下策略中。下面的代码块描述了以下策略中包含的每个 `Statement`。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SageMakerApis",
            "Effect": "Allow",
            "Action": [
                "sagemaker:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "KmsKeysForCreateForms",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey",
                "kms:ListAliases"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AccessAwsMarketplaceSubscriptions",
            "Effect": "Allow",
            "Action": [
                "aws-marketplace:ViewSubscriptions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SecretsManager",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:CreateSecret",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecrets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListAndCreateExecutionRoles",
            "Effect": "Allow",
            "Action": [
                "iam:ListRoles",
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:AttachRolePolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "PassRoleForExecutionRoles",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "sagemaker.amazonaws.com"
                }
            }
        },
        {
            "Sid": "GroundTruthConsole",
            "Effect": "Allow",
            "Action": [
                "groundtruthlabeling:*",
                "lambda:InvokeFunction",
                "lambda:ListFunctions",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:GetBucketCors",
                "s3:PutBucketCors",
                "s3:ListAllMyBuckets",
                "cognito-idp:AdminAddUserToGroup",
                "cognito-idp:AdminCreateUser",
                "cognito-idp:AdminDeleteUser",
                "cognito-idp:AdminDisableUser",
                "cognito-idp:AdminEnableUser",
                "cognito-idp:AdminRemoveUserFromGroup",
                "cognito-idp:CreateGroup",
                "cognito-idp:CreateUserPool",
                "cognito-idp:CreateUserPoolClient",
                "cognito-idp:CreateUserPoolDomain",
                "cognito-idp:DescribeUserPool",
                "cognito-idp:DescribeUserPoolClient",
                "cognito-idp:ListGroups",
                "cognito-idp:ListIdentityProviders",
                "cognito-idp:ListUsers",
                "cognito-idp:ListUsersInGroup",
                "cognito-idp:ListUserPoolClients",
                "cognito-idp:ListUserPools",
                "cognito-idp:UpdateUserPool",
                "cognito-idp:UpdateUserPoolClient"
            ],
            "Resource": "*"
        }
    ]
}
```

------

此策略包括以下语句。您可以通过向这些语句的 `Resource` 列表中添加特定资源来缩小这些语句的范围。

`SageMakerApis`

此语句包括`sagemaker:*`，它允许用户执行所有 [SageMaker AI API 操作](sagemaker/latest/APIReference/API_Operations.html)。通过限制用户执行不用于创建和监控标注作业的操作，可以缩小此策略的范围。

**`KmsKeysForCreateForms`**

只有当您想要授予用户在 Ground Truth 控制台中列出和选择用于输出数据加密的 Amazon KMS 密钥的权限时，才需要包含此语句。上述策略向用户授予在 Amazon KMS中列出和选择账户中任何密钥的权限。要限制用户可以列出和选择的密钥，请在 ARNs 中指定这些密钥`Resource`。

**`SecretsManager`**

此语句允许用户描述、列出和创建创建标注任务 Amazon Secrets Manager 所需的资源。

`ListAndCreateExecutionRoles`

此语句向用户授予在账户中列出 (`ListRoles`) 和创建 (`CreateRole`) IAM 角色的权限。此语句还向用户授予创建 (`CreatePolicy`) 策略和将 (`AttachRolePolicy`) 策略附加到实体的权限。需要这些权限才能在控制台中列出、选择并在必要时创建执行角色。

如果您已经创建了执行角色，并且想要缩小此语句的范围，以便用户只能在控制台中选择该 ARNs 角色，请指定您希望用户有权查看的角色`Resource`并移除操作`CreateRole``CreatePolicy`、和`AttachRolePolicy`。

`AccessAwsMarketplaceSubscriptions`

需要这些权限才能查看和选择您在创建标注作业时已订阅的供应商工作团队。要向用户授予*订阅*供应商工作团队的权限，请将 [供应商人力权限](#sms-security-permissions-workforce-creation-vendor) 中的语句添加到上面的策略中。

`PassRoleForExecutionRoles`

这是为标注作业创建者提供预览工作人员 UI 和验证输入数据、标签和说明是否正确显示的权限所必需的。此语句允许实体将用于创建标签作业的 IAM 执行角色传递给 A SageMaker I 以呈现和预览工作器界面。要缩小此策略的范围，请在 `Resource` 下添加用于创建标注作业的执行角色的角色 ARN。

**`GroundTruthConsole`**
+ `groundtruthlabeling` – 这允许用户执行使用 Ground Truth 控制台的某些功能所需的操作。这些权限包括描述标注作业状态 (`DescribeConsoleJob`)、列出输入清单文件中的所有数据集对象 (`ListDatasetObjects`)、在选择数据集采样时筛选数据集 (`RunFilterOrSampleDatasetJob`)，以及在使用自动数据标注时生成输入清单文件 (`RunGenerateManifestByCrawlingJob`)。这些操作只有在使用 Ground Truth 控制台时才可用，不能直接使用 API 调用。
+ `lambda:InvokeFunction` 和 `lambda:ListFunctions` – 这些操作向用户授予列出和调用用于运行自定义标注工作流的 Lambda 函数的权限。
+ `s3:*` – 此语句中包含的所有 Amazon S3 权限用于查看[自动数据设置](https://docs.amazonaws.cn/sagemaker/latest/dg/sms-console-create-manifest-file.html)所用的 Amazon S3 存储桶 (`ListAllMyBuckets`)，访问 Amazon S3 中的输入数据（`ListBucket`、`GetObject`），根据需要在 Amazon S3 中检查和创建 CORS 策略（`GetBucketCors` 和 `PutBucketCors`），以及将标注作业输出文件写入到 S3 (`PutObject`)。
+ `cognito-idp` – 这些权限用于使用 Amazon Cognito 创建、查看和管理私有人力。要了解有关这些操作的更多信息，请参阅[《Amazon Cognito API 参考》](https://docs.amazonaws.cn/cognito/latest/developerguide/cognito-reference.html)。

## 自定义标注工作流权限
<a name="sms-security-permissions-custom-workflow"></a>

将以下语句添加到与[Ground Truth 控制台权限](#sms-security-permissions-console-all)中策略类似的策略中，以允许用户在[创建自定义标注工作流](https://docs.amazonaws.cn/sagemaker/latest/dg/sms-custom-templates.html)时选择已有的注释前和注释后 Lambda 函数。

```
{
    "Sid": "GroundTruthConsoleCustomWorkflow",
    "Effect": "Allow",
    "Action": [
        "lambda:InvokeFunction",
        "lambda:ListFunctions"
    ],
    "Resource": "*"
}
```

要了解如何向实体授予创建和测试注释前和注释后 Lambda 函数的权限，请参阅[在 Ground Truth 中使用 Lambda 所需的权限](https://docs.amazonaws.cn/sagemaker/latest/dg/sms-custom-templates-step3-lambda-permissions.html)。

## 私有人力权限
<a name="sms-security-permission-workforce-creation"></a>

添加到权限策略后，以下权限可授予使用 Amazon Cognito 创建和管理私有人力和工作团队的访问权限。使用 [OIDC IdP 人力](https://docs.amazonaws.cn/sagemaker/latest/dg/sms-workforce-create-private-oidc.html#sms-workforce-create-private-oidc-next-steps)不需要这些权限。

```
{
    "Effect": "Allow",
    "Action": [
        "cognito-idp:AdminAddUserToGroup",
        "cognito-idp:AdminCreateUser",
        "cognito-idp:AdminDeleteUser",
        "cognito-idp:AdminDisableUser",
        "cognito-idp:AdminEnableUser",
        "cognito-idp:AdminRemoveUserFromGroup",
        "cognito-idp:CreateGroup",
        "cognito-idp:CreateUserPool",
        "cognito-idp:CreateUserPoolClient",
        "cognito-idp:CreateUserPoolDomain",
        "cognito-idp:DescribeUserPool",
        "cognito-idp:DescribeUserPoolClient",
        "cognito-idp:ListGroups",
        "cognito-idp:ListIdentityProviders",
        "cognito-idp:ListUsers",
        "cognito-idp:ListUsersInGroup",
        "cognito-idp:ListUserPoolClients",
        "cognito-idp:ListUserPools",
        "cognito-idp:UpdateUserPool",
        "cognito-idp:UpdateUserPoolClient"
        ],
    "Resource": "*"
}
```

要了解有关使用 Amazon Cognito 创建私有人力的更多信息，请参阅[Amazon Cognito Workforces](sms-workforce-private-use-cognito.md)。

## 供应商人力权限
<a name="sms-security-permissions-workforce-creation-vendor"></a>

您可以将以下语句添加到[授予 IAM 使用亚马逊 G SageMaker round Truth 控制台的权限](#sms-security-permission-console-access)中的策略，以授予实体订阅[供应商人力](https://docs.amazonaws.cn/sagemaker/latest/dg/sms-workforce-management-vendor.html)的权限。

```
{
    "Sid": "AccessAwsMarketplaceSubscriptions",
    "Effect": "Allow",
    "Action": [
        "aws-marketplace:Subscribe",
        "aws-marketplace:Unsubscribe",
        "aws-marketplace:ViewSubscriptions"
    ],
    "Resource": "*"
}
```