Execute um trabalho de etiquetagem do Amazon SageMaker Ground Truth em uma Amazon Virtual Private Cloud - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Execute um trabalho de etiquetagem do Amazon SageMaker Ground Truth em uma Amazon Virtual Private Cloud

O Ground Truth oferece suporte às seguintes funcionalidades na Amazon VPC.

  • Você pode usar políticas de bucket do Amazon S3 para controlar o acesso a buckets de endpoints da Amazon VPC específicos ou VPCs específicas. Se você iniciar um trabalho de rotulagem e seus dados de entrada estiverem localizados em um bucket do Amazon S3 restrito aos usuários em sua VPC, você poderá adicionar uma política de bucket para também conceder permissão ao endpoint da Ground Truth para acessar o bucket. Para saber mais, consulte Permita que o Ground Truth acesse buckets Amazon S3 restritos à VPC.

  • Você pode iniciar um trabalho automatizado de rotulagem de dados em sua VPC. Você usa uma configuração de VPC para especificar sub-redes e grupos de segurança de VPC. SageMaker usa essa configuração para iniciar os trabalhos de treinamento e inferência usados para rotulagem automatizada de dados em sua VPC. Para saber mais, consulte Criar um trabalho de rotulagem automatizada em uma VPC.

Talvez você queira usar essas opções de qualquer uma das formas a seguir.

  • Você pode usar esses dois métodos para iniciar um trabalho de rotulagem usando um bucket Amazon S3 protegido por VPC com rotulagem automática de dados ativada.

  • Você pode iniciar um trabalho de rotulagem usando qualquer tipo de trabalho integrado usando um bucket protegido por VPC.

  • Você pode iniciar um fluxo de trabalho de rotulagem personalizado usando um bucket protegido por VPC. O Ground Truth interage com suas funções do Lambda de pré-anotação e pós-anotação usando um endpoint. AWS PrivateLink

Recomendamos que você revise Pré-requisitos para executar um trabalho de rotulagem do Ground Truth em uma VPC antes de criar um trabalho de rotulagem em uma Amazon VPC.

Pré-requisitos para executar um trabalho de rotulagem do Ground Truth em uma VPC

Analise os pré-requisitos a seguir antes de criar um trabalho de rotulagem Ground Truth em uma Amazon VPC.

  • Revise a seção Segurança e permissões do Ground Truth e verifique se você atendeu às condições a seguir.

    • O usuário que está criando o trabalho de rotulagem tem todas as permissões necessárias

    • Você criou uma função de execução do IAM com as permissões obrigatórias. Se você não precisar de permissões ajustadas para seu caso de uso, recomendamos que use as políticas gerenciadas do IAM descritas em Conceder permissões gerais para começar a usar o Ground Truth.

    • Permita que sua VPC tenha acesso aos buckets sagemaker-labeling-data-region e sm-bxcb-region-saved-task-states S3. Esses são buckets S3 regionalizados de propriedade do sistema que são acessados do portal do operador durante a execução do trabalho. Usamos esses buckets para interagir com os dados gerenciados pelo sistema.

Permita que o Ground Truth acesse buckets Amazon S3 restritos à VPC

As seções a seguir fornecem detalhes sobre as permissões que o Ground Truth exige para iniciar trabalhos de rotulagem usando buckets do Amazon S3 que têm acesso restrito à sua VPC e endpoints da VPC. Para aprender como restringir o acesso a um bucket do Amazon S3 para uma VPC, consulte Controle do acesso de endpoints da VPC com políticas de bucket no Guia do usuário do Amazon Simple Storage Service. Para saber como adicionar uma política a um bucket do S3, consulte Adicionar uma política do bucket usando o console do Amazon S3.

nota

Modificar as políticas nos buckets existentes pode fazer com que os trabalhos IN_PROGRESS do Ground Truth falhem. Recomendamos que você inicie novos trabalhos usando um novo bucket. Se quiser continuar usando o mesmo bucket, realize um dos procedimentos a seguir.

  • Aguarde a conclusão de um trabalho IN_PROGRESS.

  • Encerre o trabalho usando o console ou o AWS CLI.

Você pode restringir o acesso dos usuários ao bucket do Amazon S3 em sua VPC usando um endpoint AWS PrivateLink. Veja a seguir um exemplo de política do bucket do S3 que permite acesso a um bucket específico, <bucket-name>, de <vpc> e do endpoint <vpc-endpoint> somente. Quando modificar essa política, substitua todo o texto em itálico vermelho pelos seus recursos e especificações.

nota

A política a seguir nega que todas as entidades, exceto usuários em uma VPC, executem as ações listadas em Action. Se você não incluir ações nessa lista, elas ainda poderão ser acessadas por qualquer entidade que tenha acesso a esse bucket e permissão para realizar essas ações. Por exemplo, se um usuário tiver permissão para executar GetBucketLocation em seu bucket do Amazon S3, a política abaixo não impede o usuário de realizar essa ação fora da sua VPC.

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::<bucket-name>", "arn:aws:s3:::<bucket-name>/*" ], "Condition": { "StringNotEquals": { "aws:sourceVpce": [ "<vpc-endpoint>", "<vpc>" ] } } } ] }

O Ground Truth deve ser capaz de realizar as seguintes ações do Amazon S3 nos buckets do S3 que você usa para configurar o trabalho de rotulagem.

"s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:GetBucketLocation"

Você pode fazer isso adicionando um endpoint do Ground Truth à política do bucket, como a mencionada anteriormente. A tabela a seguir inclui endpoints do serviço Ground Truth para cada AWS região. Adicione um endpoint na mesma região AWS que você usa para executar seu trabalho de rotulagem à sua política do bucket.

AWS Região Ponto final do Ground Truth
us-east-2 vpce-02569ba1c40aad0bc
us-east-1 vpce-08408e335ebf95b40
us-west-2 vpce-0ea07aa498eb78469
ca-central-1 vpce-0d46ea4c9ff55e1b7
eu-central-1 vpce-0865e7194a099183d
eu-west-2 vpce-0bccd56798f4c5df0
eu-west-1 vpce-0788e7ed8628e595d
ap-south-1 vpce-0d7fcda14e1783f11
ap-southeast-2 vpce-0b7609e6f305a77d4
ap-southeast-1 vpce-0e7e67b32e9efed27
ap-northeast-2 vpce-007893f89e05f2bbf
ap-northeast-1 vpce-0247996a1a1807dbd

Por exemplo, as seguintes restrições GetObject e PutObject ações de política em:

  • Um bucket do Amazon S3 para usuários em uma VPC (<vpc>)

  • Um endpoint da VPC (<vpc-endpoint>)

  • Um endpoint de serviço Ground Truth (<ground-truth-endpoint>)

{ "Version": "2012-10-17", "Id": "1", "Statement": [ { "Sid": "DenyAccessFromNonGTandCustomerVPC", "Effect": "Deny", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>", "arn:aws:s3:::<bucket-name>/*" ], "Condition": { "ForAllValues:StringNotEquals": { "aws:sourceVpce": [ "<vpc-endpoint>", "<ground-truth-endpoint>" ], "aws:SourceVpc": "<vpc>" } } } ] }

Se quiser que um usuário tenha permissão para iniciar um trabalho de rotulagem usando o console Ground Truth, você também deve adicionar o ARN do usuário à política do bucket usando a condição aws:PrincipalArn. Esse usuário também deve ter permissão para realizar as seguintes ações do Amazon S3 no bucket que você usa para iniciar o trabalho de rotulagem.

"s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:GetBucketCors", "s3:PutBucketCors", "s3:ListAllMyBuckets",

O código a seguir é um exemplo de uma política do bucket que restringe a permissão para realizar as ações listadas Action no bucket do S3 <bucket-name> ao seguinte.

  • <role-name>

  • Os endpoints da VPC listados em aws:sourceVpce

  • Usuários dentro da VPC chamados <vpc>

{ "Version": "2012-10-17", "Id": "1", "Statement": [ { "Sid": "DenyAccessFromNonGTandCustomerVPC", "Effect": "Deny", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>/*", "arn:aws:s3:::<bucket-name>" ], "Condition": { "ForAllValues:StringNotEquals": { "aws:sourceVpce": [ "<vpc-endpoint>", "<ground-truth-endpoint>" ], "aws:PrincipalArn": "arn:aws:iam::<aws-account-id>:role/<role-name>", "aws:SourceVpc": "<vpc>" } } } ] }
nota

Os endpoints da interface Amazon VPC e os buckets protegidos do Amazon S3 que você usa para dados de entrada e saída devem estar localizados na mesma AWS região que você usa para criar o trabalho de rotulagem.

Depois de conceder permissão ao Ground Truth para acessar seus buckets do Amazon S3, você pode usar um dos tópicos em Criar um trabalho de rotulagem para iniciar um trabalho de rotulagem. Especifique os buckets Amazon S3 restritos a VPC para seus buckets de dados de entrada e saída.

Criar um trabalho de rotulagem automatizada em uma VPC

Para criar um trabalho automatizado de rotulagem de dados usando uma Amazon VPC, forneça uma configuração de VPC usando o console Ground Truth ou a operação de API CreateLabelingJob. SageMaker usa as sub-redes e os grupos de segurança que você fornece para iniciar os trabalhos de treinamento e inferências usados para rotulagem automática.

Importante

Antes de iniciar um trabalho automatizado de rotulagem de dados com uma configuração de VPC, certifique-se de ter criado um endpoint de VPC do Amazon S3 usando a VPC que deseja usar para o trabalho de rotulagem. Para saber como, consulte Criar um endpoint da VPC no Amazon S3.

Além disso, se você criar um trabalho automatizado de rotulagem de dados usando um bucket Amazon S3 restrito a VPC, deverá seguir as instruções em Permita que o Ground Truth acesse buckets Amazon S3 restritos à VPC para dar permissão ao Ground Truth para acessar o bucket.

Use os procedimentos a seguir para aprender como adicionar uma configuração de VPC à sua solicitação de trabalho de rotulagem.

Adicione uma configuração de VPC a um trabalho de rotulagem de dados automatizada (console):
  1. Siga as instruções em Criar um trabalho de rotulagem (Console) e conclua cada etapa do procedimento, até a etapa 15.

  2. Na seção Operadores, marque a caixa de seleção ao lado de Ativar rotulagem de dados automatizada.

  3. Maximize a seção Configuração da VPC do console selecionando a seta.

  4. Especifique a Virtual Private Cloud (VPC) que deseja usar no seu trabalho de rotulagem de dados automatizada.

  5. Escolha a lista suspensa em Sub-redes e selecione uma ou mais sub-redes.

  6. Escolha a lista suspensa em Grupos de segurança e selecione um ou mais grupos.

  7. Conclua todas as etapas restantes do procedimento em Criar um trabalho de rotulagem (Console).

Adicione uma configuração de VPC a um trabalho de rotulagem de dados automatizada (console):

Para configurar um trabalho de rotulagem usando a operação de API do Ground Truth, CreateLabelingJob, siga as instruções em Criar um trabalho de rotulagem de dados automatizada (API) para configurar sua solicitação. Além dos parâmetros descritos nesta documentação, você deve incluir um parâmetro VpcConfig em LabelingJobResourceConfig para especificar uma ou mais sub-redes e grupos de segurança usando o esquema a seguir.

"LabelingJobAlgorithmsConfig": { "InitialActiveLearningModelArn": "string", "LabelingJobAlgorithmSpecificationArn": "string", "LabelingJobResourceConfig": { "VolumeKmsKeyId": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } } }

Veja a seguir um exemplo de uma solicitação do AWS Python SDK (Boto3) para criar um trabalho de rotulagem de dados automatizada na região Leste dos EUA (Norte da Virgínia) usando uma força de trabalho privada. Substitua todo o texto em itálico vermelho pelos recursos e especificações do seu trabalho de rotulagem. Para saber mais sobre a CreateLabelingJob operação, consulte o tutorial Create a Labeling Job (API) e a documentação da CreateLabelingJob API.

import boto3 client = boto3.client(service_name='sagemaker') response = client.create_labeling_job( LabelingJobName="example-labeling-job", LabelAttributeName="label", InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': "s3://bucket/path/manifest-with-input-data.json" } } }, "LabelingJobAlgorithmsConfig": { "LabelingJobAlgorithmSpecificationArn": "arn:aws:sagemaker:us-east-1:027400017018:labeling-job-algorithm-specification/tasktype", "LabelingJobResourceConfig": { "VpcConfig": { "SecurityGroupIds": [ "sg-01233456789", "sg-987654321" ], "Subnets": [ "subnet-e0123456", "subnet-e7891011" ] } } }, OutputConfig={ 'S3OutputPath': "s3://bucket/path/file-to-store-output-data", 'KmsKeyId': "string" }, RoleArn="arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri="s3://bucket/path/label-categories.json", StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': "arn:aws:sagemaker:region:*:workteam/private-crowd/*", 'UiConfig': { 'UiTemplateS3Uri': "s3://bucket/path/custom-worker-task-template.html" }, 'PreHumanTaskLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype", 'TaskKeywords': [ "Images", "Classification", "Multi-label" ], 'TaskTitle': "Add task title here", 'TaskDescription': "Add description of task here for workers", 'NumberOfHumanWorkersPerDataObject': 1, 'TaskTimeLimitInSeconds': 3600, 'TaskAvailabilityLifetimeInSeconds': 21600, 'MaxConcurrentTaskCount': 1000, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:ACS-tasktype" }, Tags=[ { 'Key': "string", 'Value': "string" }, ] )