

# Controle o acesso do cliente a um sistema de arquivos S3 Files
<a name="s3-files-access-point-policy-examples"></a>

Este tópico descreve como usar políticas de sistema de arquivos, políticas de identidade do IAM e controles de rede para controlar quais clientes podem acessar seu sistema de arquivos do S3 Files e por quais pontos de acesso.

## pontos de acesso do S3 Files
<a name="s3-files-access-point-policy-overview"></a>

Os pontos de acesso ao S3 Files são pontos de entrada específicos da aplicação para um sistema de arquivos que simplificam o gerenciamento do acesso a dados em escala. Você pode usar pontos de acesso para impor identidades e permissões de usuário para todas as solicitações do sistema de arquivos feitas por meio do ponto de acesso e restringir os clientes a acessar apenas dados dentro de um diretório raiz especificado e seus subdiretórios.

Os pontos de acesso definem o que um cliente pode fazer no sistema de arquivos. Eles não definem quais clientes podem usá-los. Qualquer função em sua conta com permissão `s3files:ClientMount` pode ser criada por meio de qualquer ponto de acesso no sistema de arquivos, a menos que uma política do sistema de arquivos a restrinja. Para controlar quais clientes podem usar qual ponto de acesso, combine três camadas: controles de rede (impedir a conexão), uma política de recursos do sistema de arquivos (negação explícita que sobrevive às alterações da política de identidade) e uma política de identidade do IAM (privilégio mínimo na função).

O S3 Files avalia `s3files:ClientMount`, `s3files:ClientWrite` e `s3files:ClientRootAccess` em relação à política do sistema de arquivos em cada montagem. A chave de condição `s3files:AccessPointArn` também é avaliada em cada montagem, para que você possa escrever uma única instrução de negação que bloqueie o acesso por meio de qualquer ponto de acesso, exceto aquele que você especificar. Se alguma ação necessária for negada ou não concedida, a montagem falhará antes que qualquer operação de arquivo ocorra. As duas seções a seguir abordam os dois requisitos comuns: restringir uma workload a um ponto de acesso específico e negar totalmente o acesso de uma workload ao sistema de arquivos.

## Restringir acesso a um ponto de acesso específico
<a name="s3-files-access-point-policy-restrict"></a>

Esse padrão se aplica quando uma função (por exemplo, uma função de instância do EC2 ou uma função de tarefa do ECS) precisa montar o sistema de arquivos por meio de apenas um ponto de acesso. A chave de condição é `s3files:AccessPointArn`. A política exige um `Allow` para o ponto de acesso pretendido e um `Deny` explícito para todos os outros pontos de acesso. As concessões de permissão do IAM são complementares às políticas de identidade e recursos; sem uma negação explícita, uma política separada pode conceder acesso a um ponto de acesso diferente.

**Exemplo de política de sistema de arquivos:**

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowComputeAOnlyViaSpecificAP",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::ACCOUNT:role/compute-a-role" },
      "Action": [
        "s3files:ClientMount",
        "s3files:ClientWrite"
      ],
      "Condition": {
        "StringEquals": {
          "s3files:AccessPointArn": "arn:aws:s3files:REGION:ACCOUNT:file-system/fs-ID/access-point/fsap-ID"
        }
      }
    },
    {
      "Sid": "DenyComputeAIfWrongAP",
      "Effect": "Deny",
      "Principal": { "AWS": "arn:aws:iam::ACCOUNT:role/compute-a-role" },
      "Action": "s3files:Client*",
      "Condition": {
        "StringNotEquals": {
          "s3files:AccessPointArn": "arn:aws:s3files:REGION:ACCOUNT:file-system/fs-ID/access-point/fsap-ID"
        }
      }
    }
  ]
}
```

A função `compute-a-role` tem permissão para montar e escrever somente quando a solicitação se destina a `fsap-ID`, e é explicitamente negada em todos os outros pontos de acesso neste sistema de arquivos. Uma negação explícita em uma política de recursos não pode ser substituída por políticas de identidade, portanto, essa restrição se mantém mesmo que uma política do IAM mais ampla seja anexada à função posteriormente.

**Comando de montagem:**

```
sudo mount -t s3files -o accesspoint=fsap-ID fs-ID:/ /mnt/s3files
```

## Negar acesso à workload por meio de qualquer ponto de acesso
<a name="s3-files-access-point-policy-deny"></a>

Esse padrão se aplica quando uma função compartilha uma conta com um sistema de arquivos do S3 Files, mas não deve montá-la por meio de nenhum ponto de acesso ou diretamente. Para bloquear todo o uso do ponto de acesso, aplique três camadas ordenadas da garantia de isolamento mais forte para a mais fraca.

**1. Controles de rede.** Remova a regra do grupo de segurança que concede às instâncias acesso `compute-b-role` ao destino de montagem na porta TCP 2049. Os controles de rede são a camada mais resiliente porque evitam a tentativa de montagem antes que ocorra qualquer troca de credencial. Mesmo que uma política mal configurada conceda permissões de montagem, a conexão NFS não pode alcançar o destino de montagem.

**2. Negação explícita na política do sistema de arquivos.** Uma declaração de negação na política do sistema de arquivos rejeita a montagem, mesmo que a função receba permissões mais amplas do IAM posteriormente. Uma política de recursos do sistema de arquivos fornece uma negação que persiste mesmo que alguém com `iam:PutRolePolicy` modifique as políticas de identidade da função. Somente as entidades principais com `s3files:PutFileSystemPolicy` podem alterar essa camada.

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyComputeBOnFileSystem",
      "Effect": "Deny",
      "Principal": { "AWS": "arn:aws:iam::ACCOUNT:role/compute-b-role" },
      "Action": "s3files:Client*",
      "Resource": "*"
    }
  ]
}
```

**3. Política de identidade do IAM.** Não concede permissões `s3files:Client*` para a função. Essa é a camada final e a mais fácil de configurar incorretamente, pois qualquer administrador com `iam:PutRolePolicy` pode conceder permissões de montagem para uma função.

### Sem uma política de sistema de arquivos, qualquer função pode ser montada por meio de qualquer ponto de acesso
<a name="s3-files-access-point-policy-deny-no-resource-policy"></a>

Uma política de recursos do sistema de arquivos fornece uma negação que não pode ser removida por alguém que só tem permissão para modificar as políticas de identidade. Sem uma política de sistema de arquivos, qualquer função com `s3files:ClientMount` em sua política de identidade pode ser montada por meio de qualquer ponto de acesso no sistema de arquivos. Recomendamos que você associe uma política de sistema de arquivos a cada sistema de arquivos com uma linha de base de negação e, em seguida, adicione instruções de permissão por workload.

## Práticas recomendadas para isolamento de um ponto de acesso
<a name="s3-files-access-point-policy-best-practices"></a>

A tabela a seguir resume as abordagens recomendadas para metas comuns de isolamento de pontos de acesso.


| Objetivo | (Abordagem recomendada) | 
| --- | --- | 
| Restringir uma workload a um único ponto de acesso | Permita a função no ARN do ponto de acesso específico, além de uma negação explícita em todos os outros pontos de acesso. Consulte Restringir acesso a um ponto de acesso específico. | 
| Impedir que uma função na mesma conta monte o sistema de arquivos | Remova o acesso à rede à porta 2049, negue na política do sistema de arquivos e não conceda no IAM. | 
| Várias workloads no mesmo sistema de arquivos, cada uma com escopo específico para seu próprio ponto de acesso | Mantenha um par Permitir \+ Negar por função na política do sistema de arquivos, cada um com um ARN de ponto de acesso diferente. | 
| Acesso entre contas por meio de um ponto de acesso | Use a política do sistema de arquivos para conceder a função entre contas no ARN do ponto de acesso específico. Não dependa apenas de políticas de identidade. | 