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 “confused deputy” entre serviços
“Confused deputy” é um problema de segurança no qual uma entidade sem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Em AWS, a falsificação de identidade entre serviços pode resultar em um problema confuso de delegado. A personificaçã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 chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar isso, a 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. Para obter uma descrição detalhada desse problema, consulte o problema de “confused deputy” no Guia do usuário do IAM.
Recomendamos usar as chaves de contexto de condição aws:SourceAccountglobal aws:SourceArne as chaves de contexto nas políticas de recursos para limitar as permissões que a AWS Transfer Family tem para o recurso. Se você utilizar ambas as chaves de contexto de condição global, o valor aws:SourceAccount e a conta aws:SourceArn no valor deverão utilizar o mesmo ID de conta quando utilizados na mesma instrução de política.
A maneira mais eficaz de se proteger contra o problema do “confused deputy” é usar o nome do recurso da Amazon (ARN) exato do recurso que você deseja permitir. Se você estiver especificando vários recursos, use a chave de condição de contexto global aws:SourceArn com caracteres curingas (*) para as partes desconhecidas do ARN. Por exemplo, .arn:aws:transfer::region::account-id:server/*
AWS O Transfer Family usa os seguintes tipos de funções:
-
Função de usuário — Permite que usuários gerenciados pelo serviço acessem os recursos necessários do Transfer Family. AWS Transfer Family assume essa função no contexto de um ARN de usuário do Transfer Family.
-
Função de acesso: fornece acesso apenas aos arquivos do Amazon S3 que estão sendo transferidos. Para AS2 transferências de entrada, a função de acesso usa o Amazon Resource Name (ARN) para o contrato. Para AS2 transferências de saída, a função de acesso usa o ARN para o conector.
-
Função de invocação: para uso com o Amazon API Gateway como provedor de identidade personalizada do servidor. O Transfer Family assume essa função no contexto de um ARN do servidor do Transfer Family.
-
Função de registro — usada para registrar entradas na Amazon CloudWatch. O Transfer Family usa essa função para registrar em log os detalhes de sucesso e falha com informações sobre transferências de arquivos. O Transfer Family assume essa função no contexto de um ARN do servidor do Transfer Family. Para AS2 transferências de saída, a função de registro usa o ARN do conector.
-
Função de execução: permite que um usuário do Transfer Family chame e inicie fluxos de trabalho. O Transfer Family assume essa função no contexto de um ARN de fluxo de trabalho do Transfer Family.
Para obter mais informações, consulte Políticas e permissões no IAM no Guia do usuário do IAM.
nota
Nos exemplos a seguir, substitua cada um user input
placeholder por suas próprias informações.
nota
Em nossos exemplos, usamos tanto ArnLike quanto ArnEquals. Eles são funcionalmente idênticos, portanto, é possível usá-los ao criar suas políticas. A documentação do Transfer Family usa ArnLike quando a condição contém um caractere curinga, e ArnEquals para indicar uma condição de correspondência exata.
AWS A função de usuário do Transfer Family entre serviços confundiu a prevenção adjunta
O exemplo de política a seguir permite que qualquer usuário de qualquer servidor na conta assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/*" } } } ] }
O exemplo de política a seguir permite que qualquer usuário de um servidor específico assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/server-id/*" } } } ] }
O exemplo de política a seguir permite que um usuário específico de um servidor específico assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/server-id/user-name" } } } ] }
AWS Transfer Family: função de fluxo de trabalho entre serviços, prevenção delegada confusa
O exemplo de política a seguir permite que qualquer fluxo de trabalho na conta assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-west-2:111122223333:workflow/*" } } } ] }
O exemplo de política a seguir permite que um fluxo de trabalho específico assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-west-2:111122223333:workflow/workflow-id" } } } ] }
AWS A função do conector Transfer Family entre serviços confundiu a prevenção adjunta
O exemplo de política a seguir permite que qualquer conector na conta assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:connector/*" } } } ] }
O exemplo de política a seguir permite que um conector específico assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:connector/connector-id" } } } ] }
AWS Transfer Family: a função de registro e invocação entre serviços confundiu a prevenção adjunta
nota
Os exemplos a seguir podem ser usados nas funções de registro e de invocação.
Nesses exemplos, você pode remover os detalhes do ARN de um fluxo de trabalho se o servidor não tiver nenhum fluxo de trabalho vinculado a ele.
O exemplo de logging/invocation política a seguir permite que qualquer servidor (e fluxo de trabalho) na conta assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAllServersWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": [ "arn:aws:transfer:us-west-2:111122223333:server/*", "arn:aws:transfer:us-west-2:111122223333:workflow/*" ] } } } ] }
O exemplo de logging/invocation política a seguir permite que um servidor específico (e fluxo de trabalho) assuma a função.
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSpecificServerWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:transfer:us-west-2:111122223333:server/server-id", "arn:aws:transfer:us-west-2:111122223333:workflow/workflow-id" ] } } } ] }