Prevenção do problema do substituto confuso entre serviços - Amazon Rekognition

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

Prevenção do problema do substituto confuso entre serviços

Em AWS, a representação entre serviços pode ocorrer quando um serviço (o serviço de chamada) chama outro serviço(o serviço chamado). O serviço de chamadas pode ser manipulado para agir sobre os recursos de outro cliente, mesmo que não deva ter as permissões adequadas, resultando no confuso problema do delegado.

Para evitar isso, o AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta.

Recomendamos o uso das chaves de contexto de condição global aws:SourceArn e aws:SourceAccount nas políticas de recursos para limitar as permissões que o Amazon Rekognition concede a outro serviço para o recurso.

Se o valor de aws:SourceArn não contiver o ID da conta, como um ARN de bucket do Amazon S3, você deverá usar as duas chaves para limitar as permissões. Se você usar as duas chaves e o valor aws:SourceArn contiver a ID da conta, o valor aws:SourceAccount e a conta no valor aws:SourceArn deverão usar a mesma ID da conta quando usados na mesma declaração de política.

Use aws:SourceArn se quiser que apenas um recurso seja associado ao acesso entre serviços. Use aws:SourceAccount se quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.

O valor de aws:SourceArn deve ser o ARN do recurso usado pelo Rekognition, que é especificado com o seguinte formato: arn:aws:rekognition:region:account:resource.

O valor de arn:User ARN deve ser o ARN do usuário que chamará a operação de análise de vídeo (o usuário que assume uma função).

A abordagem recomendada para o problema do deputado confuso é usar a chave de contexto de condição global do aws:SourceArn com o ARN completo do recurso.

Se você não souber o ARN completo do recurso ou se estiver especificando vários recursos, use a chave com caracteres curinga aws:SourceArn (*) para as partes desconhecidas do ARN. Por exemplo, arn:aws:rekognition:*:111122223333:*.

Para se proteger contra o confuso problema do deputado, execute as seguintes etapas:

  1. No painel de navegação do console do IAM, escolha a opção Perfis . O console exibirá as funções da sua conta atual.

  2. Escolha o nome da função que você deseja modificar. A função que você modifica deve ter a política de permissões do AmazonRekognitionServiceRole. Selecione a guia Relações de confiança.

  3. Escolha Editar política de confiança.

  4. Na página Editar política de confiança, substitua a política JSON padrão por uma política que utilize uma ou ambas as chaves de contexto de condição global aws:SourceArn e aws:SourceAccount. Veja os exemplos de políticas a seguir.

  5. Escolha Update policy.

Os exemplos a seguir são políticas de confiança que mostram como você pode usar as chaves de contexto de condição global aws:SourceAccount e aws:SourceArn e as chaves de contexto no Amazon Rekognition para evitar o confuso problema do delegado.

Se você estiver trabalhando armazenado e transmitindo vídeos, poderá usar uma política como a seguinte em seu perfil do IAM:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"rekognition.amazonaws.com", "AWS":"arn:User ARN" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"Account ID" }, "StringLike":{ "aws:SourceArn":"arn:aws:rekognition:region:111122223333:streamprocessor/*" } } } ] }

Se você estiver trabalhando exclusivamente com vídeo armazenado, poderá usar uma política como a seguinte em sua função do IAM (observe que você não precisa incluir o argumento StringLike que especifica o streamprocessor):

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"rekognition.amazonaws.com", "AWS":"arn:User ARN" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"Account ID" } } } ] }