

# Pré-requisitos referentes ao S3 Files
<a name="s3-files-prereq-policies"></a>

Para começar a usar o S3 Files, é necessário cumprir os pré-requisitos a seguir.

## Configuração da conta e computação da AWS
<a name="s3-files-prereq-account-setup"></a>
+ Você tem uma conta da AWS.
+ Você tem um recurso de computação e um bucket de uso geral do S3 na região da AWS desejada em que pretende criar seu sistema de arquivos. Para ter mais informações, consulte [Criar um bucket de uso geral](create-bucket-overview.md).
+ Seu bucket do S3 tem o versionamento habilitado. O S3 Files exige o Versionamento do S3 para sincronizar as alterações entre o sistema de arquivos e o bucket do S3. Para ter mais informações, consulte [Habilitar o versionamento em buckets](manage-versioning-examples.md).
+ O bucket do S3 deve usar um dos seguintes tipos de criptografia: criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) ou criptografia do lado do servidor com chaves gerenciadas pelo AWS Key Management Service (AWS KMS) (SSE-KMS).

## Cliente do S3 Files
<a name="s3-files-prereq-client"></a>

Para usar o S3 Files com o Amazon EC2, é necessário instalar o cliente `amazon-efs-utils`, uma coleção compartilhada de ferramentas de código aberto para o Amazon EFS e o Amazon S3 Files. Para trabalhar com o S3 Files, você precisa do `amazon-efs-utils` versão 3.0.0 ou posterior. O cliente inclui um programa auxiliar de montagem que simplifica a montagem dos sistemas de arquivos do S3 e permite que as métricas do Amazon CloudWatch monitorem o status de montagem do sistema de arquivos.

### Etapa 1: instalar o cliente
<a name="s3-files-prereq-client-install"></a>
+ Acesse o terminal para sua instância do Amazon EC2 por meio do Secure Shell (SSH) e faça login com o nome de usuário apropriado. Para acessar mais informações, consulte o tópico sobre como [Conexão com a instância do EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) no *Guia do usuário do Amazon Elastic Compute Cloud*.
+ Se você usa o Amazon Linux, faça o seguinte para instalar o efs-utils a partir de repositórios da Amazon:

  ```
  sudo yum -y install amazon-efs-utils
  ```
+ Se você usa outras distribuições do Linux compatíveis, é possível fazer o seguinte:

  ```
  curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install
  ```
+ Para outras distribuições do Linux, consulte [Other Linux Distributions](https://github.com/aws/efs-utils/?tab=readme-ov-file#on-other-linux-distributions) no README do amazon-efs-utils no GitHub.

### Etapa 2: instalar o botocore
<a name="s3-files-prereq-client-botocore"></a>

O cliente `amazon-efs-utils` usa o botocore para interagir com outros serviços da AWS. Por exemplo, é necessário instalar o botocore para usar o Amazon CloudWatch para monitorar o sistema de arquivos. Para ver instruções sobre como instalar e atualizar o botocore, consulte [Installing botocore](https://github.com/aws/efs-utils#install-botocore) no README do amazon-efs-utils no GitHub.

### Habilitar o modo FIPS para o S3 Files
<a name="s3-files-prereq-client-fips"></a>

Se você precisar atender às Normas Federais de Processamento de Informações (FIPS), deverá habilitar o modo FIPS no cliente. A habilitação do modo FIPS envolve a modificação do arquivo `s3files-utils.conf` no sistema operacional.

Siga estas etapas para habilitar o modo FIPS no cliente para o S3 Files:

1. Abra o arquivo `/etc/amazon/efs/s3files-utils.conf` usando o editor de texto de sua preferência.

1. Encontre a linha que contém o seguinte texto:

   ```
   fips_mode_enabled = false
   ```

1. Altere o código para o seguinte:

   ```
   fips_mode_enabled = true
   ```

1. Salve as alterações.

## Perfis e políticas do IAM
<a name="s3-files-prereq-iam"></a>

Para usar o S3 Files, é necessário configurar perfis do IAM e políticas anexadas para duas finalidades:
+ Acessar um bucket pelo sistema de arquivos
+ Anexar um sistema de arquivos a recursos de computação da AWS

### Perfil do IAM para acessar um bucket pelo sistema de arquivos
<a name="s3-files-prereq-iam-creation-role"></a>

Ao criar um sistema de arquivos do S3, você deve especificar um perfil do IAM que o S3 Files assume para ler e gravar no bucket do S3. Esse perfil permite que o S3 Files sincronize as alterações entre o sistema de arquivos e o bucket do S3. Ele também concede permissões para gerenciar as regras do Amazon EventBridge que o S3 Files usa para detectar alterações no bucket do S3 e acionar a sincronização. Você também deve garantir que as políticas do bucket de origem não neguem acesso ao seu recurso de computação.

**nota**  
Quando um sistema de arquivos é criado por meio do Console de Gerenciamento da AWS, o S3 Files cria automaticamente esse perfil do IAM com as permissões necessárias.

O perfil do IAM requer o seguinte:
+ Uma política em linha como a seguinte:

  ```
  {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "S3BucketPermissions",
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:ListBucketVersions"
              ],
              "Resource": "arn:aws:s3:::{{bucket}}",
              "Condition": {
                  "StringEquals": {
                      "aws:ResourceAccount": "{{accountId}}"
                  }
              }
          },
          {
              "Sid": "S3ObjectPermissions",
              "Effect": "Allow",
              "Action": [
                  "s3:AbortMultipartUpload",
                  "s3:DeleteObject*",
                  "s3:GetObject*",
                  "s3:List*",
                  "s3:PutObject*"
              ],
              "Resource": "arn:aws:s3:::{{bucket}}/*",
              "Condition": {
                  "StringEquals": {
                      "aws:ResourceAccount": "{{accountId}}"
                  }
              }
          },
          {
              "Sid": "UseKmsKeyWithS3Files",
              "Effect": "Allow",
              "Action": [
                  "kms:GenerateDataKey",
                  "kms:Encrypt",
                  "kms:Decrypt",
                  "kms:ReEncryptFrom",
                  "kms:ReEncryptTo"
              ],
              "Condition": {
                  "StringLike": {
                      "kms:ViaService": "s3.{{region}}.amazonaws.com",
                      "kms:EncryptionContext:aws:s3:arn": [
                          "arn:aws:s3:::{{bucket}}",
                          "arn:aws:s3:::{{bucket}}/*"
                      ]
                  }
              },
              "Resource": "arn:aws:kms:{{region}}:{{accountId}}:*"
          },
          {
              "Sid": "EventBridgeManage",
              "Effect": "Allow",
              "Action": [
                  "events:DeleteRule",
                  "events:DisableRule",
                  "events:EnableRule",
                  "events:PutRule",
                  "events:PutTargets",
                  "events:RemoveTargets"
              ],
              "Condition": {
                  "StringEquals": {
                      "events:ManagedBy": "elasticfilesystem.amazonaws.com"
                  }
              },
              "Resource": [
                  "arn:aws:events:*:*:rule/DO-NOT-DELETE-S3-Files*"
              ]
          },
          {
              "Sid": "EventBridgeRead",
              "Effect": "Allow",
              "Action": [
                  "events:DescribeRule",
                  "events:ListRuleNamesByTarget",
                  "events:ListRules",
                  "events:ListTargetsByRule"
              ],
              "Resource": [
                  "arn:aws:events:*:*:rule/*"
              ]
          }
      ]
  }
  ```

  Substitua os valores dos espaços reservados por seus próprios valores:    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/s3-files-prereq-policies.html)
+ Uma política de confiança que permita que o S3 Files assuma o perfil do IAM. Adicione a política de confiança a seguir ao perfil do IAM para permitir que o S3 Files o assuma. Substitua {{accountId}} e {{region}} por seus próprios valores.

  ```
  {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AllowS3FilesAssumeRole",
              "Effect": "Allow",
              "Principal": {
                  "Service": "elasticfilesystem.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                      "aws:SourceAccount": "{{accountId}}"
                  },
                  "ArnLike": {
                      "aws:SourceArn": "arn:aws:s3files:{{region}}:{{accountId}}:file-system/*"
                  }
              }
          }
      ]
  }
  ```

### Perfil do IAM para anexar o sistema de arquivos a recursos de computação da AWS
<a name="s3-files-prereq-iam-compute-role"></a>

Os recursos de computação nos quais o sistema de arquivos do S3 é montado devem ter um perfil do IAM anexado (por exemplo, um perfil de instância do EC2) com políticas que permitam que o recurso de computação interaja com o sistema de arquivos do S3 e o bucket do S3 de origem. Você também deve garantir que as políticas do bucket de origem não neguem acesso ao seu recurso de computação.

Adicione as duas seguintes políticas ao perfil do IAM anexado ao seu recurso de computação:
+ **Permissões para que o recurso de computação se conecte e interaja com os sistemas de arquivos do S3**

  O perfil do IAM deve incluir permissões para que o auxiliar de montagem se conecte e interaja com os sistemas de arquivos do S3. É possível anexar uma política gerenciada pela AWS, como a política gerenciada `AmazonS3FilesClientFullAccess`, se você quiser conceder ao recurso de computação acesso total de leitura e gravação ao sistema de arquivos do S3, ou a política `AmazonS3FilesClientReadOnlyAccess` para acesso somente leitura. Você também pode anexar a política gerenciada `AmazonElasticFileSystemUtils` se quiser habilitar o monitoramento do Amazon CloudWatch. Para ter mais informações e ver uma lista completa de políticas gerenciadas para o S3 Files, consulte [Políticas gerenciadas pela AWS para o Amazon S3 Files](s3-files-security-iam-awsmanpol.md). Também é possível oferecer essas permissões adicionando permissões individuais do IAM, como `s3files:ClientMount` ou `s3files:ClientWrite` (não necessárias para conexões somente de leitura) ao perfil do IAM do recurso de computação.
+ **Uma política em linha que concede ao recurso de computação acesso de leitura a objetos do S3**

  Adicione a política em linha a seguir ao perfil do IAM. Essa política concede ao recurso de computação permissões para ler objetos diretamente do bucket vinculado do S3 na mesma conta a fim de otimizar o desempenho de leitura. Substitua {{bucket}} pelo nome do bucket do S3 ou o nome do bucket pelo prefixo.

  ```
  {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "S3ObjectReadAccess",
              "Effect": "Allow",
              "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion"
              ],
              "Resource": "arn:aws:s3:::{{bucket}}/*"
          },
          {
              "Sid": "S3BucketListAccess",
              "Effect": "Allow",
              "Action": "s3:ListBucket",
              "Resource": "arn:aws:s3:::{{bucket}}"
          }
      ]
  }
  ```

## Grupos de segurança
<a name="s3-files-prereq-security-groups"></a>

Depois que o sistema de arquivos e os destinos de montagem são criados, é necessário configurar os grupos de segurança corretos para começar a usar o sistema de arquivos. Os grupos de segurança no recurso de computação e no destino de montagem devem permitir o tráfego necessário, conforme mostrado na tabela abaixo:


| Grupo de segurança | Tipo de regra | Protocolo | Porta | Origem/destino | 
| --- | --- | --- | --- | --- | 
| Instância do EC2 | Saída | TCP | 2049 | Grupo de segurança de destino de montagem | 
| Destino de montagem | Entrada | TCP | 2049 | Grupo de segurança da instância do EC2 | 