授予使用 Amazon SageMaker Ground Truth 控制台的 IAM 权限 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

授予使用 Amazon SageMaker Ground Truth 控制台的 IAM 权限

要使用 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 使用所选的执行角色来启动标注作业。

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

Ground Truth 控制台权限

要向用户或角色授予使用 SageMaker 控制台的 Ground Truth 区域创建标注作业的权限,请将以下策略附加到用户或角色。以下策略将向 IAM 角色授予使用内置任务类型创建标注作业的权限。如果要创建自定义标注工作流,请将 自定义标注工作流权限 中的策略添加到以下策略中。下面的代码块描述了以下策略中包含的每个 Statement

{ "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 API 操作。通过限制用户执行不用于创建和监控标注作业的操作,可以缩小此策略的范围。

KmsKeysForCreateForms

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

SecretsManager

此语句向用户授予在 Amazon Secrets Manager 中描述、列出和创建资源的权限,这些资源是创建标注作业所需的。

ListAndCreateExecutionRoles

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

如果您已经创建了执行角色,并且希望缩小此语句的范围,以便用户只能在控制台中选择该角色,请指定您希望用户有权在 Resource 中查看和删除操作 CreateRoleCreatePolicyAttachRolePolicy 的角色的 ARN。

AccessAwsMarketplaceSubscriptions

需要这些权限才能查看和选择您在创建标注作业时已订阅的供应商工作团队。要向用户授予订阅供应商工作团队的权限,请将 供应商人力权限 中的语句添加到上面的策略中。

PassRoleForExecutionRoles

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

GroundTruthConsole

  • groundtruthlabeling – 这允许用户执行使用 Ground Truth 控制台的某些功能所需的操作。这些权限包括描述标注作业状态 (DescribeConsoleJob)、列出输入清单文件中的所有数据集对象 (ListDatasetObjects)、在选择数据集采样时筛选数据集 (RunFilterOrSampleDatasetJob),以及在使用自动数据标注时生成输入清单文件 (RunGenerateManifestByCrawlingJob)。这些操作只有在使用 Ground Truth 控制台时才可用,不能直接使用 API 调用。

  • lambda:InvokeFunctionlambda:ListFunctions – 这些操作向用户授予列出和调用用于运行自定义标注工作流的 Lambda 函数的权限。

  • s3:* – 此语句中包含的所有 Amazon S3 权限用于查看自动数据设置所用的 Amazon S3 存储桶 (ListAllMyBuckets),访问 Amazon S3 中的输入数据(ListBucketGetObject),根据需要在 Amazon S3 中检查和创建 CORS 策略(GetBucketCorsPutBucketCors),以及将标注作业输出文件写入到 S3 (PutObject)。

  • cognito-idp – 这些权限用于使用 Amazon Cognito 创建、查看和管理私有人力。要了解有关这些操作的更多信息,请参阅《Amazon Cognito API 参考》

自定义标注工作流权限

将以下语句添加到与Ground Truth 控制台权限中策略类似的策略中,以允许用户在创建自定义标注工作流时选择已有的注释前和注释后 Lambda 函数。

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

要了解如何向实体授予创建和测试注释前和注释后 Lambda 函数的权限,请参阅在 Ground Truth 中使用 Lambda 所需的权限

私有人力权限

添加到权限策略后,以下权限可授予使用 Amazon Cognito 创建和管理私有人力和工作团队的访问权限。使用 OIDC IdP 人力不需要这些权限。

{ "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 人力

供应商人力权限

您可以将以下语句添加到授予使用 Amazon SageMaker Ground Truth 控制台的 IAM 权限中的策略,以授予实体订阅供应商人力的权限。

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