Requisitos previos para archivos de S3
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
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.
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.
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
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
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 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
en el README de amazon-efs-utils en GitHub.
Paso 2: Instalar botocore
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
Habilitación del modo FIPS para los archivos de S3
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:
Con el editor de textos que prefiera, abra el archivo
/etc/amazon/efs/s3files-utils.conf.Busque la línea que contiene el siguiente texto:
fips_mode_enabled = falseCambie el texto a lo siguiente:
fips_mode_enabled = trueGuarde los cambios.
Roles y políticas de IAM
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
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.
# Placeholder Descripción Ejemplo 1 Bucket deEl nombre del bucket de S3 my-bucket 2 regionLa región de AWS del bucket us-east-1 3 accountIdSu ID de cuenta de AWS 123456789012 -
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
accountIdyregiónpor 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
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
AmazonS3FilesClientFullAccesssi desea conceder al recurso informático un acceso completo de lectura y escritura al sistema de archivos de S3 oAmazonS3FilesClientReadOnlyAccesspara un acceso de solo lectura. También puede adjuntar la política administrada porAmazonElasticFileSystemUtilssi 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. También puede proporcionar estos permisos agregando permisos de IAM individuales, comos3files:ClientMountos3files: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
bucketpor 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
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 |