

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
<a name="requirements-roles"></a>

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](#session-policy). Você também pode encontrar mais informações sobre políticas de sessão em [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) no *Guia do usuário do IAM*.

**Topics**
+ [Criação de um perfil de usuário](#role-create-procedure)
+ [Como funcionam as políticas de sessão](#session-policy)
+ [Exemplo de política de read/write acesso](#read-write-access)

## Criação de um perfil de usuário
<a name="role-create-procedure"></a>

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](#iam-policy-procedure).

1. Criar um perfil do IAM e associar a ela a nova política. Para ver um exemplo, consulte [Exemplo de política de read/write acesso](#read-write-access).

1. 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](#establish-trust-transfer).

Os procedimentos a seguir descrevem como criar uma política e um perfil do IAM. <a name="iam-policy-procedure"></a>

**Para criar uma política do IAM para AWS Transfer Family**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

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

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

1. 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](#read-write-access).

1. 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.<a name="iam-role-procedure"></a>

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

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

1. 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**.

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

1. 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.<a name="establish-trust-transfer"></a>

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

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

1. 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](confused-deputy.md).

1. 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](getting-started.md), essa função e política são designadas ao(s) seu(s) usuário(s).

**Consulte também**
+ Para obter mais informações gerais sobre as funções do IAM, consulte [Como criar uma função para delegar permissões a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do usuário do IAM*.
+ Para saber mais sobre políticas baseada em identidade para recursos do Amazon S3, consulte o [Gerenciamento de identidade e acesso no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) no *Guia do Usuário do Amazon Simple Storage Service*.
+ Para saber mais sobre políticas baseadas em identidade para recursos do Amazon EFS, consulte [Como usar o IAM para controlar o acesso aos dados do sistema de arquivos](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) no *Guia do usuário do Amazon Elastic File System*.

## Como funcionam as políticas de sessão
<a name="session-policy"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html), 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](#read-write-access), 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.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/EffectivePermissions-session-rbp-id.png)


Para obter mais informações, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) 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](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateUser.html#API_CreateUser_RequestSyntax) 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](encryption-at-rest.md).
+ 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, consulte[Abordagens dinâmicas de gerenciamento de permissões](dynamic-permission-management.md).

****  

```
{
    "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 [HomeDirectory](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateUser.html#TransferFamily-CreateUser-request-HomeDirectory)[Implementar seu método do API Gateway](authentication-api-gateway.md#authentication-api-method)e. 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
<a name="read-write-access"></a>

**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ê *já* 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html#versioning-states).

****  

```
{
    "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](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html) (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"
        }
    ]
}
```