Exemplos de políticas baseadas em identidade para o Amazon Comprehend - Amazon Comprehend

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á.

Exemplos de políticas baseadas em identidade para o Amazon Comprehend

Por padrão, usuários e perfis não têm permissão para criar nem modificar recursos do Amazon Comprehend. Eles também não podem executar tarefas usando o AWS Management Console, a AWS Command Line Interface (AWS CLI) ou a API AWS. Para conceder aos usuários permissão para executar ações nos recursos de que precisam, um administrador do IAM pode criar políticas do IAM. O administrador pode então adicionar as políticas do IAM aos perfis, e os usuários podem assumir os perfis.

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documento de política JSON, consulte Criação de políticas do IAM no Guia do Usuário do IAM.

Para detalhes sobre ações e tipos de recurso definidos pelo Amazon Comprehend, incluindo o formato dos ARNs para cada um dos tipos de recurso, consulte Ações, recursos e chaves de condição do Amazon Comprehend na Referência de autorização do serviço.

Práticas recomendadas de políticas

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do Amazon Comprehend em sua conta. Essas ações podem incorrer em custos para a Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • Comece com AWS as políticas gerenciadas pela e avance para as permissões de privilégio mínimo: para começar a conceder permissões a seus usuários e workloads, use as AWS políticas gerenciadas pela que concedem permissões para muitos casos de uso comuns. Elas estão disponíveis na sua Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente da AWS específicas para seus casos de uso. Para obter mais informações, consulte Políticas gerenciadas pela AWS ou Políticas gerenciadas pela AWS para perfis de trabalho no Guia do usuário do IAM.

  • Aplique permissões de privilégio mínimo: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Para obter mais informações sobre como usar o IAM para aplicar permissões, consulte Políticas e permissões no IAM no Guia do usuário do IAM.

  • Use condições nas políticas do IAM para restringir ainda mais o acesso: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. É possível também usar condições para conceder acesso a ações de serviço, se elas forem usadas por meio de um Serviço da AWS específico, como o AWS CloudFormation. Para obter mais informações, consulte Elementos de política JSON do IAM: Condição no Manual do usuário do IAM.

  • Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de 100 verificações de política e recomendações acionáveis para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte Validação de políticas do IAM Access Analyzer no Guia do usuário do IAM.

  • Exigir autenticação multifator (MFA): se houver um cenário que exija usuários do IAM ou um usuário raiz em sua Conta da AWS, ative a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para obter mais informações, consulte Configuração de acesso à API protegido por MFA no Guia do usuário do IAM.

Para obter mais informações sobre as práticas recomendadas do IAM, consulte Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.

Usar o console do Amazon Comprehend

Para acessar o console da Amazon Comprehend, você deve ter um conjunto mínimo de permissões. Essas permissões dão autorização para que você liste e visualize detalhes sobre os recursos do Amazon Comprehend em sua Conta da AWS. Se você criar uma política baseada em identidade que seja mais restritiva do que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou perfis) com essa política.

Não é necessário conceder permissões mínimas do console para usuários que fazem chamadas somente à AWS CLI ou à AWS API. Em vez disso, permita o acesso somente a ações que correspondam a operação de API que estiverem tentando executar.

Para obter permissões mínimas do console do Amazon Comprehend, você pode anexar as políticas gerenciadas ComprehendReadOnly e AWS às entidades. Para obter mais informações, consulte Adicionando Permissões a um Usuário no Guia do Usuário do IAM.

Para usar o console do Amazon Comprehend, também é necessário conceder permissões para as ações exibidas na política a seguir:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:ListRoles", "iam:GetRole", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": "*" } ] }

O console do Amazon Comprehend precisa dessas permissões adicionais pelas seguintes razões:

  • Permissões do iam para listar os perfis do IAM disponíveis para sua conta.

  • Permissões do s3 para acessar os buckets e objetos do Amazon S3 contendo os dados para modelagem de tópicos.

Ao criar uma tarefa em lote assíncrono ou uma tarefa de modelagem de tópicos usando o console, você tem a opção de fazer com que o console crie um perfil do IAM para sua tarefa. Para criar um perfil do IAM, os usuários devem receber as seguintes permissões adicionais para criar políticas e perfis do IAM e anexar políticas aos perfis:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/*Comprehend*" } ] }

O console do Amazon Comprehend precisa dessas permissões adicionais pelas seguintes razões:

  • Permissões do iam para criar e anexar perfis e políticas. A ação iam:PassRole permite que o console passe o perfil para o Amazon Comprehend.

Permitir que os usuários exibam as próprias permissões

Este exemplo mostra como é possível criar uma política que permite que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou de forma programática usando a AWS CLI ou a AWS API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Permissões necessárias para executar ações de análise de documentos

O exemplo de política a seguir concede permissões para usar as ações de análise de documentos do Amazon Comprehend:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowDetectActions", "Effect": "Allow", "Action": [ "comprehend:DetectEntities", "comprehend:DetectKeyPhrases", "comprehend:DetectDominantLanguage", "comprehend:DetectSentiment", "comprehend:DetectTargetedSentiment", "comprehend:DetectSyntax", "textract:DetectDocumentText", "textract:AnalyzeDocument" ], "Resource": "*" } ] }

A política tem uma instrução que concede permissão para usar as ações DetectEntities, DetectKeyPhrases, DetectDominantLanguage, DetectTargetedSentiment, DetectSentiment, e DetectSyntax. A declaração de política também concede permissões para usar dois métodos da API Amazon Textract. O Amazon Comprehend chama esses métodos para extrair texto de arquivos de imagem e documentos PDF digitalizados. É possível remover essas permissões para usuários que nunca executam inferência personalizada para esses tipos de arquivos de entrada.

Um usuário com essa política não conseguiria realizar ações em lote ou ações assíncronas em sua conta.

A política não especifica o elemento Principal, porque não se especifica o principal que obtém as permissões em uma política baseada em identidade. Quando você anexar uma política a um usuário, o usuário será a entidade principal implícita. Quando você anexa uma política de permissões a um perfil do IAM, a entidade principal identificada na política de confiança do perfil obtém as permissões.

Para obter uma tabela que mostra todas as ações da API do Amazon Comprehend e os recursos aos quais elas se aplicam, consulte Ações, recursos e chaves de condição do Amazon Comprehend na Referência de autorização de serviço.

Permissões necessárias para usar a criptografia KMS

Para usar totalmente o Amazon Key Management Service (KMS) para criptografia de dados e tarefas em uma tarefa assíncrona, é preciso conceder permissões para as ações mostradas na seguinte política:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "kms:CreateGrant" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "kms:Decrypt", "kms:GenerateDatakey" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "s3.region.amazonaws.com" ] } } } ] }

Ao criar uma tarefa assíncrona com o Amazon Comprehend, você usa dados de entrada armazenados no Amazon S3. Com o S3, você tem a opção de criptografar seus dados armazenados, os quais são criptografados pelo S3, não pelo Amazon Comprehend. Podemos descriptografar e ler esses dados de entrada criptografados se você fornecer ao kms:Decrypt permissão para a chave com a qual os dados de entrada originais foram criptografados para o perfil de acesso a dados usada pela tarefa do Amazon Comprehend.

Você também tem a opção de usar chaves gerenciadas pelo cliente (CMK) do KMS para criptografar os resultados de saída no S3, bem como o volume de armazenamento usado durante o processamento da tarefa. Ao fazer isso, é possível usar a mesma chave KMS para os dois tipos de criptografia, mas não é necessário. Campos separados estão disponíveis ao criar a tarefa a fim de especificar as chaves para criptografia de saída e criptografia de volume, e você pode até mesmo usar uma chave KMS de uma conta diferente.

Ao usar a criptografia KMS, é necessária a permissão kms:CreateGrant para criptografia de volume e a permissão de kms:GenerateDataKey para criptografia de dados de saída. Para ler entradas criptografadas (como quando os dados de entrada já estão criptografados pelo Amazon S3), é necessária a permissão kms:Decrypt. O perfil do IAM precisa conceder essas permissões conforme necessário. No entanto, se a chave for de uma conta diferente da que está sendo usada atualmente, a política de chave do KMS para essa chave também deve conceder essas permissões ao perfil de acesso a dados da tarefa.

Políticas gerenciadas pela AWS (predefinidas) para o Amazon Comprehend

A AWS aborda muitos casos de uso comuns fornecendo políticas autônomas do IAM que são criadas e administradas pela AWS. Essas políticas gerenciadas pela AWS concedem as permissões indispensáveis para casos de uso comuns para que você não precise investigar quais permissões são necessárias. Para obter mais informações, consulte AWSPolíticas gerenciadas pela no Guia do usuário do IAM.

As seguintes políticas gerenciadas pela AWS, às quais você pode anexar aos usuários em sua conta, são específicas do Amazon Comprehend:

  • ComprehendFullAccess— Concede acesso total aos recursos do Amazon Comprehend, incluindo a execução de trabalhos de modelagem de tópicos. Inclui permissão para listar e obter perfis do IAM.

  • ComprehendReadOnly— Concede permissão para executar todas as ações do Amazon ComprehendStartEntitiesDetectionJob, StartDominantLanguageDetectionJob exceto,,, StartKeyPhrasesDetectionJobStartSentimentDetectionJob, e. StartTargetedSentimentDetectionJob StartTopicsDetectionJob

É preciso aplicar a seguinte política adicional a qualquer usuário que usará o Amazon Comprehend:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/*Comprehend*" } ] }

É possível revisar essas políticas de permissões gerenciadas fazendo login no console do IAM e pesquisando políticas específicas.

Essas políticas funcionam quando você está usando os SDKs da AWS ou o CLI da AWS.

Você também pode criar suas próprias políticas do IAM personalizadas a fim de dar permissões para ações e recursos do Amazon Comprehend. Você pode anexar essas políticas personalizadas a usuários, perfis ou grupos que exijam essas permissões.

Permissões baseadas em perfis necessárias para operações assíncronas

Para usar as operações assíncronas do Amazon Comprehend, você deve conceder a ele o acesso ao bucket do Amazon S3 contendo sua coleção de documentos. Você faz isso criando um perfil de acesso a dados em sua conta com uma política de confiança para confiar na entidade principal do serviço do Amazon Comprehend. Para mais informações sobre como criar um perfil, consulte Criar um perfil para delegar permissões a um produto da AWS no Guia do usuário do Identity and Access Management da AWS.

O exemplo a seguir mostra um exemplo de política de confiança para o perfil criado. Para ajudar na prevenção do problema “confused deputy”, você restringe o escopo da permissão usando uma ou mais chaves de contexto de condição global. Defina o valor aws:SourceAccount para o ID da sua conta. Se você usar a condição ArnEquals, defina o valor aws:SourceArn como o ARN da tarefa. Use um curinga para o número da tarefa no ARN, porque o Amazon Comprehend gera esse número como parte da criação de tarefas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "comprehend.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/*" } } } ] }

Depois de criar o perfil, crie uma política de acesso para esse perfil. Isso deve conceder ao Amazon S3 as permissões GetObject e ListBucket para o bucket do Amazon S3 contendo seus dados de entrada, e a permissão dePutObject do Amazon S3 para o bucket de dados de saída do Amazon S3.

Conceder permissões a todas as ações do Amazon Comprehend

Depois de se cadastrar na AWS, você cria um usuário administrador para gerenciar sua conta, incluindo a criação de usuários e o gerenciamento das permissões deles.

Você pode optar por criar um usuário que tem permissões para todas as ações do Amazon Comprehend (pense nesse usuário como um administrador específico do serviço) para trabalhar com o Amazon Comprehend. Você pode anexar a política de permissões a seguir para este usuário.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllComprehendActions", "Effect": "Allow", "Action": [ "comprehend:*", "iam:ListRoles", "iam:GetRole", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "kms:CreateGrant", "kms:Decrypt", "kms:GenerateDatakey" ], "Resource": "*" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/*Comprehend*" } ] }

Essas permissões podem ser modificadas com relação à criptografia das seguintes maneiras:

  • Para permitir que o Amazon Comprehend analise documentos armazenados em um bucket S3 criptografado, o perfil do IAM deve ter a permissão para kms:Decrypt.

  • Para permitir que o Amazon Comprehend criptografe documentos armazenados em um volume de armazenamento anexado à instância de computação que processa a tarefa de análise, o perfil do IAM deve ter a permissão para kms:CreateGrant.

  • Para permitir que o Amazon Comprehend criptografe os resultados de saída em seu bucket do S3, o perfil do IAM deve ter a permissão para kms:GenerateDataKey.

Permissões para ações de modelagem de tópicos

A política a seguir concede permissões ao usuário para realizar as operações de modelagem de tópicos do Amazon Comprehend.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowTopicModelingActions", "Effect": "Allow", "Action": [ "comprehend:DescribeTopicsDetectionJob", "comprehend:ListTopicsDetectionJobs", "comprehend:StartTopicsDetectionJob", ], "Resource": "*" ] } ] }

Permissões necessárias para uma tarefa de análise assíncrona personalizada

Importante

Se você tiver uma política do IAM que restringe o acesso ao modelo, não conseguirá concluir uma tarefa de inferência com um modelo personalizado. Sua política do IAM deve ser atualizada para ter um recurso curinga para uma tarefa personalizada de análise assíncrona.

Se você estiver usando as StartEntitiesDetectionJobAPIs StartDocumentClassificationJob e, precisará atualizar sua política do IAM, a menos que esteja usando curingas como recursos no momento. Se você estiver StartEntitiesDetectionJobusando um modelo pré-treinado, isso não afetará você e você não precisará fazer nenhuma alteração.

O exemplo de política a seguir contém uma referência desatualizada.

{ "Action": [ "comprehend:StartDocumentClassificationJob", "comprehend:StartEntitiesDetectionJob", ], "Resource": [ "arn:aws:comprehend:us-east-1:123456789012:document-classifier/myClassifier", "arn:aws:comprehend:us-east-1:123456789012:entity-recognizer/myRecognizer" ], "Effect": "Allow" }

Essa é a política atualizada que você precisa usar para executar e. StartDocumentClassificationJob StartEntitiesDetectionJob

{ "Action": [ "comprehend:StartDocumentClassificationJob", "comprehend:StartEntitiesDetectionJob", ], "Resource": [ "arn:aws:comprehend:us-east-1:123456789012:document-classifier/myClassifier", "arn:aws:comprehend:us-east-1:123456789012:document-classification-job/*", "arn:aws:comprehend:us-east-1:123456789012:entity-recognizer/myRecognizer", "arn:aws:comprehend:us-east-1:123456789012:entities-detection-job/*" ], "Effect": "Allow" }