Permissões e segurança na Amazon Augmented AI - 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á.

Permissões e segurança na Amazon Augmented AI

Ao utilizar o Amazon Augmented AI (Amazon A2I) para criar um fluxo de trabalho de revisão humana para sua aplicação de ML/AI, você cria e configura recursos no Amazon SageMaker, como uma força de trabalho humana e modelos de tarefas para os trabalhadores. Para configurar e iniciar um loop humano, você integra o Amazon A2I a outros AWS serviços, como o Amazon Textract ou o Amazon Rekognition, ou usa a API Amazon Augmented AI Runtime. Para criar um fluxo de trabalho de revisão humana e iniciar um ciclo humano, você deve anexar determinadas políticas ao seu perfil (IAM) ou usuário AWS Identity and Access Management. Especificamente:

  • Quando você inicia um ciclo humano usando dados de entrada de imagem em ou após 12 de janeiro de 2020, é necessário adicionar uma política de cabeçalho CORS (Cross-Origin Resource Sharing) ao bucket do Amazon S3 que contém seus dados de entrada. Para saber mais, consulte Requisitos de permissão do CORS.

  • Ao criar uma definição de fluxo, você precisa fornecer uma função que concede permissão ao Amazon A2I para acessar o Amazon S3, tanto para ler objetos que são renderizados em uma interface de tarefa humana quanto para gravar os resultados da revisão humana.

    Essa função também deve ter uma política de confiança anexada para conceder permissão ao SageMaker para assumir a função. Isso permite que o Amazon A2I execute ações de acordo com as permissões que você anexa à função.

    Consulte Adicionar permissões ao perfil do IAM usadas para criar uma definição de fluxo para obter políticas de exemplo que você pode modificar e anexar à função que você usa para criar uma definição de fluxo. Essas são as políticas que são anexadas ao perfil do IAM criada na seção de fluxos de trabalho de revisão humana da área do Amazon A2I no console do SageMaker.

  • Para criar e iniciar loops humanos, use uma operação de API em um tipo de tarefa interno (como DetectModerationLabel ou AnalyzeDocument) ou a operação de API StartHumanLoop do Amazon A2I runtime em uma aplicação de ML personalizada. Você precisa anexar a política gerenciada AmazonAugmentedAIFullAccess ao usuário que invoca essas operações de API para conceder permissão a esses serviços para usar operações do Amazon A2I. Para saber como, consulte Criar um usuário que possa invocar operações de API Amazon A2I.

    Essa política não concede permissão para invocar as operações da API do serviço da AWS associado a tipos de tarefa integrados. Por exemplo, a política AmazonAugmentedAIFullAccess não concede permissão para chamar a operação de API DetectModerationLabel do Amazon Rekognition ou a operação de API AnalyzeDocument do Amazon Textract. Você pode usar a política mais geral, AmazonAugmentedAIIntegratedAPIAccess, para conceder essas permissões. Para obter mais informações, consulte Crie um usuário com permissões para invocar as operações da API Amazon A2I, Amazon Textract e Amazon Rekognition. Esta é uma boa opção quando você deseja conceder a um usuário permissões amplas para usar o Amazon A2I e operações de API integradas aos serviços AWS.

    Se você quiser configurar permissões mais granulares, consulte Exemplos de políticas baseadas em identidade do Amazon Rekognition e Exemplos de políticas baseadas em identidade do Amazon Textract para obter políticas baseadas em identidade que podem ser usadas para conceder permissão para usar esses serviços individuais.

  • Para visualizar o modelo personalizado da interface do trabalhador da tarefa, você precisa de um perfil do IAM com permissões para ler objetos do Amazon S3 que são renderizados na sua interface do usuário. Consulte um exemplo de política em Habilitar visualizações do modelo de tarefa de operador .

Requisitos de permissão do CORS

No início de 2020, navegadores amplamente utilizados como o Chrome e o Firefox alteraram seu comportamento padrão para girar imagens com base nos metadados da imagem, conhecidos como dados EXIF. Anteriormente, as imagens eram exibidas nos navegadores exatamente como eram armazenadas no disco, geralmente sem rotação. Após a alteração, as imagens agora giram de acordo com um metadado da imagem chamado valor de orientação. Isso tem implicações importantes para toda a comunidade de machine learning (ML). Por exemplo, se a orientação EXIF não for considerada, os aplicativos usados para anotar imagens podem exibir imagens em orientações inesperadas e resultar em rótulos incorretos.

A partir do Chrome 89, o AWS não pode mais impedir automaticamente a rotação de imagens porque o grupo de padrões da web W3C decidiu que a capacidade de controlar a rotação de imagens viola a Política de Mesma Origem da web. Portanto, para garantir que os trabalhadores humanos anotem suas imagens de entrada em uma orientação previsível ao enviar solicitações para criar um loop humano, você deve adicionar uma política de cabeçalho CORS aos buckets do S3 que contêm suas imagens de entrada.

Importante

Se você não adicionar uma configuração CORS aos buckets do S3 que contém seus dados de entrada, as tarefas de revisão humana desses objetos de dados de entrada falharão.

Você pode adicionar uma política de CORS a um bucket do S3 que contém dados de entrada no console do Amazon S3. Para definir os cabeçalhos CORS necessários no bucket do S3 que contém suas imagens de entrada no console do S3, siga as instruções detalhadas em Como faço para adicionar o compartilhamento de recursos entre domínios com o CORS?. Use o código de configuração CORS a seguir para os buckets que hospedam suas imagens. Se você usar o console do Amazon S3 para adicionar a política ao bucket, deverá usar o formato JSON.

JSON

[{ "AllowedHeaders": [], "AllowedMethods": ["GET"], "AllowedOrigins": ["*"], "ExposeHeaders": [] }]

XML

<CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> </CORSRule> </CORSConfiguration>

O seguinte GIF demonstra as instruções encontradas na documentação do Amazon S3 para adicionar uma política de cabeçalho CORS usando o console do Amazon S3.

Adicionar permissões ao perfil do IAM usadas para criar uma definição de fluxo

Para criar uma definição de fluxo, anexe as políticas desta seção à função que você utiliza ao criar um fluxo de trabalho de revisão humana no console do SageMaker ou ao usar a operação de API CreateFlowDefinition.

  • Se você estiver utilizando o console para criar um fluxo de trabalho de revisão humana, insira o Amazon Resource Name (ARN) do perfil no campo Perfil do IAM ao criar um fluxo de trabalho de análise humana no console.

  • Ao criar uma definição de fluxo usando a API, anexe essas políticas à função que é passada para o parâmetro RoleArn da operação CreateFlowDefinition.

Quando você cria um fluxo de trabalho de análise humana (definição de fluxo), o Amazon A2I chama o Amazon S3 para concluir a tarefa. Para conceder permissão ao Amazon A2I para recuperar e armazenar seus arquivos no seu bucket do Amazon S3, crie a seguinte política e a anexe à sua função. Por exemplo, se as imagens, documentos e outros arquivos que você está enviando para revisão humana estiverem armazenados em um bucket do S3 chamado my_input_bucket e se você quiser que as revisões humanas sejam armazenadas em um bucket chamado my_output_bucket, crie a política a seguir.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my_input_bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my_output_bucket/*" ] } ] }

Além disso, o perfil do IAM deve ter a seguinte política de confiança para conceder permissão ao SageMaker para assumir a função. Para obter mais informações sobre políticas de confiança do IAM, consulte a seção Políticas Baseadas em Recursos na documentação de Políticas e Permissões do AWS AWSIdentity and Access Management (IAM).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSageMakerToAssumeRole", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Para obter mais informações sobre como criar e gerenciar funções e políticas do , consulte os seguintes tópicos no Guia do usuário do AWS Identity and Access Management:

Criar um usuário que possa invocar operações de API Amazon A2I

Para usar o Amazon A2I para criar e iniciar loops humanos para Amazon Rekognition, Amazon Textract ou API de tempo de execução do Amazon A2I, você deve usar um usuário que tenha permissões para invocar operações do Amazon A2I. Para fazer isso, utilize o console do IAM para anexar a política gerenciada AmazonAugmentedAIFullAccess a um usuário novo ou existente.

Esta política concede permissão a um usuário para invocar operações da API do SageMaker para criação e gerenciamento de definições de fluxo e da API do Amazon Augmented AI Runtime para criação e gerenciamento de ciclos humanos. Para saber mais sobre essas operações de API, consulte Usar APIs no Amazon Augmented AI.

A política AmazonAugmentedAIFullAccess não concede permissões para usar operações da API do Amazon Rekognition ou do Amazon Textract.

nota

Você também pode anexar a política AmazonAugmentedAIFullAccess a um perfil do IAM que é usada para criar e iniciar um ciclo humano.

Para fornecer o acesso, adicione as permissões aos seus usuários, grupos ou perfis:

Para obter mais informações, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do AWS Identity and Access Management.

Crie um usuário com permissões para invocar as operações da API Amazon A2I, Amazon Textract e Amazon Rekognition

Para criar um usuário que tem permissão para invocar as operações da API usadas pelos tipos de tarefa incorporados (ou seja, DetectModerationLables para o Amazon Rekognition e AnalyzeDocument para o Amazon Textract) e permissão para usar todas as operações da API do Amazon A2I, anexe a política gerenciada do IAM, AmazonAugmentedAIIntegratedAPIAccess. Você pode querer usar essa política quando desejar conceder permissões amplas a um usuário que utiliza o Amazon A2I com mais de um tipo de tarefa. Para saber mais sobre essas operações de API, consulte Usar APIs no Amazon Augmented AI.

nota

Você também pode anexar a política AmazonAugmentedAIIntegratedAPIAccess a um perfil do IAM que é usada para criar e iniciar um ciclo humano.

Para fornecer o acesso, adicione as permissões aos seus usuários, grupos ou perfis:

Para obter mais informações, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do AWS Identity and Access Management.

Habilitar visualizações do modelo de tarefa de operador

Para personalizar a interface e as instruções que os operadores veem ao trabalhar em suas tarefas, você cria um modelo de tarefa de operador. Você pode criar o modelo usando a operação CreateHumanTaskUi ou o console do SageMaker.

Para visualizar seu modelo, você precisa de um perfil do IAM com as seguintes permissões para ler objetos do Amazon S3 que são renderizados na sua interface do usuário.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my_input_bucket/*" ] } ] }

Para os tipos de tarefas Amazon Rekognition e Amazon Textract, você pode visualizar seu modelo usando a seção Amazon Augmented AI do console do SageMaker. Para tipos de tarefa personalizados, você visualiza seu modelo chamando a operação RenderUiTemplate. Para visualizar o modelo, siga as instruções para o tipo de tarefa:

  • Tipos de tarefa Amazon Rekognition e Amazon Textract - No console do SageMaker, utilize o Amazon Resource Name (ARN) da função no procedimento documentado em Criar um modelo de tarefa de trabalho.

  • Tipos de tarefa personalizados - Na operação RenderUiTemplate, utilize o ARN da função no parâmetro RoleArn.

Usando o Amazon A2I com AWS KMS buckets criptografados

Se você especificar uma chave AWS Key Management Service (AWS KMS) gerenciada pelo cliente para criptografar os dados de saída em OutputConfig of CreateFlowDefinition, deverá adicionar uma política do IAM semelhante à seguinte para essa chave. Essa política dá à função de execução do IAM que você usa para criar seus loops humanos permissão para usar essa chave para realizar todas as ações listadas em "Action". Para saber mais, consulte AWS KMS Permissões no Guia do desenvolvedor do AWS Key Management Service.

Para usar essa política, substitua o ARN do perfil de serviço do IAM pelo ARN "Principal" da função de execução que você usa para criar o fluxo de trabalho de revisão humana (definição de fluxo). Quando você cria um trabalho de etiquetagem usando CreateFlowDefinition, esse é o ARN para o qual você especifica para RoleArn. Observe que você não pode fornecer um KmsKeyId ao criar uma definição de fluxo no console.

{ "Sid": "AllowUseOfKmsKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/example-role" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Permissões e recursos de segurança adicionais