

# Requisitos previos para archivos de S3
<a name="s3-files-prereq-policies"></a>

Antes de comenzar a usar los archivos de S3, asegúrese de que cumple los siguientes requisitos previos.

## Configuración informática y de cuenta de AWS
<a name="s3-files-prereq-account-setup"></a>
+ Tener una cuenta de AWS.
+ Tiene un recurso informático y un bucket de uso general de S3 en la región de AWS que desee para crear el sistema de archivos. Para obtener más información, consulte [Creación de un bucket de uso general](create-bucket-overview.md).
+ El bucket de S3 tiene el control de versiones habilitado. Los archivos de S3 requieren el control de versiones de S3 para sincronizar los cambios entre el sistema de archivos y el bucket de S3. Para obtener más información, consulte [Habilitar el control de versiones en buckets](manage-versioning-examples.md).
+ El bucket de S3 debe utilizar uno de los siguientes tipos de cifrado: cifrado del servidor con claves administradas de Amazon S3 (SSE-S3) o el cifrado del servidor con claves del servicio de administración de claves de AWS (AWS KMS) (SSE-KMS).

## Cliente de archivos de S3
<a name="s3-files-prereq-client"></a>

Para utilizar los archivos de S3 con Amazon EC2, debe instalar el cliente `amazon-efs-utils`, una recopilación compartida de herramientas de código abierto para archivos de Amazon EFS y Amazon S3. Para trabajar con archivos de S3, necesita la versión de `amazon-efs-utils` 3.0.0 o superior. El cliente incluye un programa de ayudante de montaje que simplifica el montaje de los sistemas de archivos de S3 y habilita las métricas de Amazon CloudWatch para supervisar el estado de montaje del sistema de archivos.

### Paso 1: Instalar el cliente
<a name="s3-files-prereq-client-install"></a>
+ Obtenga acceso al terminal de la instancia de Amazon EC2 a través de Secure Shell (SSH) e inicie sesión con el nombre de usuario adecuado. Para obtener más información, consulte [Conexión con instancias de EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) en la *Guía del usuario de Amazon Elastic Compute Cloud*.
+ Para aquellas que usan Amazon Linux, haga lo siguiente para instalar efs-utils desde los repositorios de Amazon:

  ```
  sudo yum -y install amazon-efs-utils
  ```
+ Si utiliza otras distribuciones de Linux compatibles, puede hacer lo siguiente:

  ```
  curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install
  ```
+ en el caso de otras distribuciones de Linux, consulte [En otras distribuciones de Linux](https://github.com/aws/efs-utils/?tab=readme-ov-file#on-other-linux-distributions) en el README de amazon-efs-utils en GitHub.

### Paso 2: Instalar botocore
<a name="s3-files-prereq-client-botocore"></a>

El cliente de `amazon-efs-utils` usa botocore para interactuar con otros servicios de AWS. Por ejemplo, debe instalar botocore para utilizar Amazon CloudWatch para supervisar el sistema de archivos. Para obtener instrucciones sobre la instalación y la actualización de botocore, consulte [Instalación de botocore](https://github.com/aws/efs-utils#install-botocore) en el README de amazon-efs-utils en Github.

### Habilitación del modo FIPS para los archivos de S3
<a name="s3-files-prereq-client-fips"></a>

Si necesita cumplir con los estándares federales de procesamiento de la información (FIPS), debe habilitar el modo FIPS en el cliente. La habilitación del modo FIPS implica la modificación del archivo `s3files-utils.conf` en el sistema operativo.

Siga estos pasos para habilitar el modo FIPS en el cliente para los archivos de S3:

1. Con el editor de textos que prefiera, abra el archivo `/etc/amazon/efs/s3files-utils.conf`.

1. Busque la línea que contiene el siguiente texto:

   ```
   fips_mode_enabled = false
   ```

1. Cambie el texto a lo siguiente:

   ```
   fips_mode_enabled = true
   ```

1. Guarde los cambios.

## Roles y políticas de IAM
<a name="s3-files-prereq-iam"></a>

Para usar archivos de S3, debe configurar los roles de IAM y las políticas adjuntas para dos propósitos:
+ Acceder al bucket desde el sistema de archivos.
+ Adjuntar el sistema de archivos a los recursos informáticos de AWS.

### Rol de IAM para acceder al bucket desde el sistema de archivos
<a name="s3-files-prereq-iam-creation-role"></a>

Al crear un sistema de archivos de S3, debe especificar un rol de IAM que los archivos de S3 asuman para leer y escribir en el bucket de S3. Este rol permite que los archivos de S3 sincronicen los cambios entre el sistema de archivos y el bucket de S3. El rol también otorga permisos para administrar las reglas de Amazon EventBridge que los archivos de S3 utilizan para detectar cambios en el bucket de S3 y desencadenar la sincronización. También debe asegurarse de que las políticas de bucket del bucket de origen no denieguen el acceso desde el recurso informático.

**nota**  
Al crear un sistema de archivos mediante la consola de administración de AWS, los archivos de S3 crean automáticamente este rol de IAM con los permisos necesarios.

Este rol de IAM requiere lo siguiente:
+ Una política insertada como la siguiente:

  ```
  {
      "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/*"
              ]
          }
      ]
  }
  ```

  sustituya los valores de marcador de posición por los valores propios.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/s3-files-prereq-policies.html)
+ Una política de confianza que permita a los archivos de S3 asumir el rol de IAM. Agregue la siguiente política de confianza al rol de IAM para permitir que el servicio de archivos de S3 la asuma. Sustituya {{accountId}} y {{región}} por sus 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/*"
                  }
              }
          }
      ]
  }
  ```

### Rol de IAM para adjuntar el sistema de archivos a los recursos informáticos de AWS
<a name="s3-files-prereq-iam-compute-role"></a>

Los recursos informáticos en los que monte un sistema de archivos de S3 deben tener un rol de IAM asociado (por ejemplo, un perfil de instancia de EC2) con políticas que permitan al recurso informático interactuar con el sistema de archivos de S3 y el bucket de S3 de origen. También debe asegurarse de que las políticas de bucket del bucket de origen no denieguen el acceso desde el recurso informático.

Agregue las dos políticas siguientes al rol de IAM asociado al recurso informático:
+ **Permisos para que el recurso informático se conecte a los sistemas de archivos de S3 e interactúe con ellos**

  El rol de IAM debe incluir permisos para que el asistente de montaje se conecte a los sistemas de archivos de S3 e interactúe con ellos. Puede adjuntar una política administrada de AWS como una política administrada por `AmazonS3FilesClientFullAccess` si desea conceder al recurso informático un acceso completo de lectura y escritura al sistema de archivos de S3 o `AmazonS3FilesClientReadOnlyAccess` para un acceso de solo lectura. También puede adjuntar la política administrada por `AmazonElasticFileSystemUtils` si desea habilitar la supervisión de Amazon CloudWatch. Para obtener más información y una lista completa de las políticas administradas disponibles para archivos de S3, consulte [Políticas administradas de AWS para archivos de Amazon S3](s3-files-security-iam-awsmanpol.md). También puede proporcionar estos permisos agregando permisos de IAM individuales, como `s3files:ClientMount` o `s3files:ClientWrite` (no necesarios para las conexiones de solo lectura) al rol de IAM del recurso informático.
+ **Una política insertada que concede al recurso informático acceso de lectura a los objetos de S3**

  Agregue la siguiente política insertada al rol de IAM. Esta política otorga al recurso informático permisos para leer directamente los objetos del bucket de S3 vinculado en la misma cuenta a fin de optimizar el rendimiento de lectura. Sustituya el {{bucket}} por el nombre del bucket de S3 o el nombre del bucket por un prefijo.

  ```
  {
      "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 seguridad
<a name="s3-files-prereq-security-groups"></a>

Una vez creados el sistema de archivos y los destinos de montaje, debe configurar los grupos de seguridad adecuados para empezar a utilizar el sistema de archivos. Los grupos de seguridad del recurso informático y del destino de montaje deben permitir el tráfico necesario, como se muestra en la siguiente tabla:


| Grupo de seguridad | Tipo de regla | Protocolo | Puerto | Origen/destino | 
| --- | --- | --- | --- | --- | 
| Instancia de EC2 | Salida | TCP | 2049 | Grupo de seguridad del destino de montaje | 
| Destino de montaje | Entrada | TCP | 2049 | Grupo de seguridad de la instancia de EC2 | 