¿Cómo puedo conceder a mi instancia de Amazon EC2 acceso a un bucket de Amazon S3?

Última actualización: 22-07-2021

No soy capaz de acceder a un bucket de Amazon Simple Storage Service (Amazon S3) desde mi instancia de Amazon Elastic Compute Cloud (Amazon EC2). ¿Cómo puedo activar el acceso de lectura o escritura a buckets de S3 desde una instancia EC2?

Descripción corta

Para conectar sus buckets de S3 desde sus instancias EC2, debe hacer lo siguiente:

1.    Crear un rol de perfil de AWS Identity and Access Management (IAM) que conceda acceso a Amazon S3.

2.    Vincule el perfil de instancias de IAM a la instancia.

3.    Valide los permisos en su bucket de S3.

4.    Valide la conectividad de red desde la instancia EC2 a Amazon S3.

5.    Valide el acceso a buckets de S3.

Resolución

Crear un perfil de instancias de IAM que conceda acceso a Amazon S3

1.    Abra la consola de IAM.

2.    Seleccione Roles y luego Create Role (Crear rol).

3.    Seleccione AWS Service (Servicio de AWS) y luego elija EC2.

Nota: al crear un rol de IAM desde la consola con EC2 seleccionada como entidad de confianza, se crea a su vez automáticamente un perfil de instancias de IAM con el mismo nombre que el nombre del rol. Sin embargo, si el rol se ha creado mediante AWS Command Line Interface (AWS CLI) o desde la API, entonces no se creará un perfil de instancias de manera automática. Para más información, consulte Creé un rol de IAM, pero no aparece en la lista desplegable cuando lanzo una instancia. ¿Qué debo hacer?

4.    Seleccione Next: Permissions (Siguiente: Permisos).

5.    Cree una política personalizada que brinde los permisos mínimos requeridos para acceder a su bucket de S3. Para instrucciones sobre la creación de políticas personalizadas, consulte Escribir políticas de IAM: Cómo garantizar acceso a un bucket de Amazon S3 e Administración de identidades y accesos en Amazon S3.

Nota: Crear una política con los permisos mínimos requeridos es una práctica recomendada de seguridad. Sin embargo, para permitir a EC2 acceder a todos sus buckets de Amazon S3, puede utilizar las políticas administradas de IAM AmazonS3ReadOnlyAccess o AmazonS3FullAccess.

6.    Elija Next: Tags (Siguiente: Etiquetas) y luego Next: Review (Siguiente: Revisión).

7.    Escriba un Nombre de rol y luego elija Create Role (Crear rol).

Vincular el perfil de instancias de IAM a la instancia EC2

1.    Abra la consola de Amazon EC2.

2.    Elija Instances (Instancias).

3.    Seleccione la instancia a la que quiere vincular el rol de IAM.

4.    Elija la pestaña Actions (Acciones), elija Security (Seguridad) y luego elija Modify IAM role (Modificar rol de IAM).

5.    Seleccione el rol de IAM que acaba de crear, y luego elija Save (Guardar). El rol de IAM se asigna a su instancia EC2.

Validar permisos en su bucket de S3

1.    Abra la consola de Amazon S3.

2.    Seleccione el bucket de S3 para el que quiere verificar la política.

3.    Elija Permissions (Permisos).

4.    Elija Bucket Policy (Política de buckets).

5.    Busque declaraciones con Effect: Deny (Efecto: Denegar).

6.    En su política de buckets, edite o elimine cualquier declaración Effect: Deny (Efecto: Denegar) que esté denegando al perfil de instancias de IAM acceso a su bucket. Para obtener instrucciones sobre cómo editar políticas, consulte Editar políticas de IAM.

Validar la conectividad de red desde la instancia EC2 a Amazon S3

Verifique que la instancia EC2 tiene conectividad con puntos de enlace de S3.

La instancia debe ser de uno de los siguientes tipos:

Instancia EC2 con una dirección IP pública y una entrada de tabla de enrutamiento con la ruta predeterminada apuntando a una gateway de Internet.
Instancia EC2 privada con una ruta predeterminada a través de una gateway NAT.
Instancia EC2 privada con conectividad a Amazon S3 mediante un punto de enlace de la VPC de Gateway.

Validar el acceso a buckets de S3

1.    Instale AWS CLI.

Nota: si recibe errores al ejecutar comandos de AWS CLI, asegúrese de que utiliza la versión más reciente de AWS CLI.

2.    Verifique el acceso a sus buckets de S3 mediante la ejecución del siguiente comando. Sustituya DOC-EXAMPLE-BUCKET por el nombre de su bucket de S3.

aws s3 ls s3://DOC-EXAMPLE-BUCKET

Nota: Los objetos de S3 cifrados con una clave de AWS Key Management Service (AWS KMS), deben contar con permisos kms:Decrypt concedidos en los siguientes elementos:
El rol de IAM vinculado a la instancia.
La política de clave KMS.

Si no se han concedido los permisos, no podrá copiar o descargar los objetos de S3. Para obtener más información, consulte¿Necesito especificar la clave de AWS KMS cuando descargo un objeto cifrado con KMS desde Amazon S3?


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?