Criar uma política e um perfil do IAM - AWS Transfer Family

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

Criar uma política e um perfil do IAM

Este tópico descreve os tipos de políticas e funções que podem ser usadas e explica o processo de criação de uma função de usuário. AWS Transfer Family Ele também descreve como as políticas de sessão funcionam e dá um exemplo de função de usuário.

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

Além dessas funções, você também pode usar políticas de sessão. Uma política de sessão é usada para limitar o acesso quando necessário. Observe que essas políticas são independentes: ou seja, você não as adiciona a uma função. Em vez disso, você adiciona uma política de sessão diretamente a um usuário do Transfer Family.

nota

Ao criar um usuário do Transfer Family gerenciado pelo serviço, você pode selecionar a Política de geração automática com base na pasta inicial. Esse é um atalho útil se você quer limitar o acesso do usuário às suas próprias pastas. Além disso, você pode ver detalhes sobre políticas de sessão e um exemplo em Como funcionam as políticas de sessão. Você também pode encontrar mais informações sobre políticas de sessão em Políticas de sessão no Guia do usuário do IAM.

Criação de um perfil de usuário

Ao criar um usuário, você toma uma série de decisões sobre o acesso do usuário. Essas decisões incluem quais buckets do Amazon S3 ou sistemas de arquivos do Amazon EFS o usuário pode acessar, quais partes de cada bucket do Amazon S3 e quais arquivos no sistema de arquivos estão acessíveis e quais permissões o usuário tem (por exemplo, PUT ou GET).

Para definir o acesso, você cria uma política e uma função baseadas em identidade AWS Identity and Access Management (IAM) que fornecem essas informações de acesso. Como parte desse processo, você fornece acesso para o Amazon S3 bucket ou sistema de arquivos Amazon EFS que é o destino ou origem para operações de arquivo. Para isso, siga as etapas de alto nível a seguir, descritas em detalhes posteriormente:

Criação de um perfil de usuário
  1. Crie uma política do IAM para AWS Transfer Family. Isso está descrito em Para criar uma política do IAM para AWS Transfer Family.

  2. Criar um perfil do IAM e associar a ela a nova política. Para obter um exemplo, consulte Exemplo de política de read/write acesso.

  3. Estabeleça uma relação de confiança entre AWS Transfer Family e a função do IAM. Isso está descrito em Estabelecer um relacionamento de confiança.

Os procedimentos a seguir descrevem como criar uma política e um perfil do IAM.

Para criar uma política do IAM para AWS Transfer Family
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, selecione Políticas e, em seguida, Criar política.

  3. Na página Create Policy (Criar política), escolha a guia JSON.

  4. No editor que é exibido, substitua o conteúdo do editor pelo perfil do IAM que você deseja anexar ao perfil do IAM.

    Você pode conceder read/write acesso ou restringir os usuários ao diretório inicial. Para obter mais informações, consulte Exemplo de política de read/write acesso.

  5. Escolha Revisar política, forneça um nome e uma descrição para a sua política e em seguida selecione Criar política.

Em seguida, crie um perfil do IAM e anexe a nova política do IAM à ela.

Para criar uma função do IAM para AWS Transfer Family
  1. No painel de navegação, escolha Roles (Funções) e Criar função.

    Na página Criar função, certifique-se de que AWS Serviço foi escolhido.

  2. Selecione Transferir na lista de serviço, e Próximo: Permissões. Isso estabelece uma relação de confiança entre AWS Transfer Family e. AWS

  3. Na seção Anexar política de permissões, localize e selecione a política que você acabou de criar e selecione Próximo: Tags.

  4. (Opcional) Insira uma chave e um valor para a tag e selecione Próximo: análise.

  5. Na página Análise, insira um nome e uma descrição para a sua nova função, e escolha Criar função.

Em seguida, você estabelece uma relação de confiança entre AWS Transfer Family AWS e.

Estabelecer um relacionamento de confiança
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.

  1. No console do IAM, selecione a função que você acabou de criar.

  2. Na página Resumo, selecione Relacionamentos de confiança e selecione Editar relacionamento de confiança.

  3. No editor Editar relacionamento de confiança, verifique se o serviço é "transfer.amazonaws.com". A política de acesso editada é mostrada a seguir.

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

    Recomendamos o uso das chaves de condição aws:SourceAccount e aws:SourceArn para se proteger contra o problema confused deputy. A conta de origem é o proprietário do domínio e o ARN de origem é o ARN do usuário. Por exemplo:

    "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account_id:user/*" } }

    Você também pode usar a condição ArnLike se quiser restringir a um servidor específico em vez de a qualquer servidor na conta do usuário. Por exemplo:

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } }
    nota

    Nos exemplos acima, substitua cada um user input placeholder por suas próprias informações.

    Para obter detalhes sobre o problema do confused deputy e mais exemplos, consulte Prevenção do problema do “confused deputy” entre serviços.

  4. Selecione Atualizar política de confiança para atualizar a política de acesso.

Agora você criou uma função do IAM que permite AWS Transfer Family chamar AWS serviços em seu nome. Você anexou o perfil do IAM que você criou à função para conceder acesso ao seu usuário. Na seção Introdução aos endpoints de AWS Transfer Family servidor, essa função e política são designadas ao(s) seu(s) usuário(s).

Consulte também

Como funcionam as políticas de sessão

Quando um administrador cria uma função, a função geralmente inclui amplas permissões para cobrir vários casos de uso ou membros da equipe. Se um administrador configurar um URL do console, poderá reduzir as permissões para a sessão resultante usando uma política de sessão. Por exemplo, se você criar uma função com acesso de leitura/gravação, poderá configurar um URL que limite o acesso dos usuários apenas aos diretórios pessoais.

As políticas de sessão são políticas avançadas que você transmite como um parâmetro quando você cria de forma programática uma sessão temporária para uma função ou usuário. As políticas de sessão são úteis para bloquear usuários para que eles tenham acesso apenas às partes do seu bucket em que os prefixos de objeto contêm seus nomes de usuário. O diagrama a seguir mostra que as permissões da sessão resultante são a interseção das políticas de sessão e das políticas baseadas em recurso, mais a interseção das políticas de sessão e das políticas baseadas em identidade.

Diagrama de Venn de permissões da política de sessão. Mostra a eficácia das permissões nas interseções de políticas baseadas em recurso, políticas baseadas em recurso, políticas baseadas em identidade e políticas de sessão.

Para obter mais informações, consulte Políticas de sessão no Guia do usuário do IAM.

Em AWS Transfer Family, uma política de sessão é suportada somente quando você está transferindo para ou do Amazon S3. A política de exemplo a seguir é uma política de sessão que limita o acesso dos usuários somente aos seus diretórios home. Observe o seguinte:

  • As declarações de GetObjectACL e PutObjectACL só são necessárias se você precisar habilitar o acesso entre contas. Ou seja, seu servidor Transfer Family precisa acessar um bucket em uma conta diferente.

  • O tamanho máximo de uma política de sessão é 2.048 caracteres. Para obter mais detalhes, consulte o parâmetro de solicitação de política para a CreateUser ação na referência da API.

  • Se seu bucket do Amazon S3 for criptografado usando AWS Key Management Service (AWS KMS), você deverá especificar permissões adicionais em sua política. Para obter detalhes, consulte Proteção e criptografia de dados.

  • Para usar políticas de sessão para criar permissões de acesso com base nos atributos do usuário sem criar funções do IAM separadas para cada usuário, consulteAbordagens dinâmicas de gerenciamento de permissões.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::${transfer:HomeBucket}" ], "Condition": { "StringLike": { "s3:prefix": [ "${transfer:HomeFolder}/*", "${transfer:HomeFolder}" ] } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
nota

O exemplo de política anterior pressupõe que os usuários tenham seus diretórios pessoais configurados para incluir uma barra final, para indicar que é um diretório. Se, por outro lado, você definir um HomeDirectory de usuário sem a barra final, então deve incluí-lo como parte de sua política.

No exemplo anterior da política, observe o uso dos parâmetros de política transfer:HomeFolder, transfer:HomeBucket, e transfer:HomeDirectory. Esses parâmetros são definidos para o HomeDirectory que está configurado para o usuário, conforme descrito em HomeDirectoryImplementar seu método do API Gatewaye. Esses parâmetros têm as seguintes definições:

  • O parâmetro transfer:HomeBucket é substituído pelo primeiro componente do HomeDirectory.

  • O parâmetro transfer:HomeFolder é substituído pelas partes restantes do parâmetro HomeDirectory.

  • O parâmetro transfer:HomeDirectory tem a barra inicial (/) removida para que possa ser usado como parte do nome do recurso da Amazon (ARN) do S3 em uma instrução Resource.

nota

Se você estiver usando diretórios lógicos, ou seja, o homeDirectoryType do usuário é LOGICAL, esses parâmetros de política (HomeBucket,HomeDirectory, e HomeFolder) não serão compatíveis.

Por exemplo, suponha que o parâmetro HomeDirectory configurado para o usuário do Transfer Family seja /home/bob/amazon/stuff/.

  • transfer:HomeBucket está definido como /home.

  • transfer:HomeFolder está definido como /bob/amazon/stuff/.

  • transfer:HomeDirectory se torna home/bob/amazon/stuff/.

O primeiro "Sid" permite que o usuário liste todos os diretórios a partir de /home/bob/amazon/stuff/.

O segundo "Sid" limita o acesso put e get do usuário ao mesmo caminho,/home/bob/amazon/stuff/.

Exemplo de política de read/write acesso

Conceda read/write acesso ao bucket do Amazon S3

O exemplo de política a seguir AWS Transfer Family concede read/write acesso a objetos em seu bucket do Amazon S3.

Observe o seguinte:

  • Substitua amzn-s3-demo-bucket pelo nome do bucket do Amazon S3.

  • As declarações de GetObjectACL e PutObjectACL só são necessárias se você precisar habilitar o acesso entre contas. Ou seja, seu servidor Transfer Family precisa acessar um bucket em uma conta diferente.

  • As instruções GetObjectVersion e DeleteObjectVersion só serão necessárias se o versionamento estiver habilitado no bucket do Amazon S3 que está sendo acessado.

    nota

    Se você habilitou o versionamento para seu bucket, precisará dessas permissões, pois você só pode suspender o versionamento no Amazon S3 e não desativá-lo completamente. Para obter detalhes, consulte Buckets sem versão, com versionamento ativado e com versionamento suspenso.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectTagging", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectVersionTagging", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Conceder acesso ao sistema de arquivos aos arquivos no sistema de arquivos do Amazon EFS

nota

Além da política, você também deve garantir que suas permissões de arquivo POSIX estejam concedendo o acesso apropriado. Para obter mais informações, consulte Working with users, groups, and permissions at the Network File System (NFS) Level (Trabalhar com usuários, grupos e permissões no nível do Network File System (NFS)) no Guia do usuário do Amazon Elastic File System.

O exemplo de política a seguir concede ao sistema de arquivos raiz acesso aos arquivos em seu sistema de arquivos do Amazon EFS.

nota

Nos exemplos a seguir, region substitua pela sua região, account-id pela conta em que o arquivo está e file-system-id pelo ID do seu Amazon Elastic File System (Amazon EFS).

{ "Version":"2012-10-17", "Statement": [ { "Sid": "RootFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientRootAccess", "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/file-system-id" } ] }

O exemplo de política a seguir concede ao sistema de arquivos raiz acesso aos arquivos em seu sistema de arquivos do Amazon EFS.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "UserFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/file-system-id" } ] }