No puedo acceder a un bucket de Amazon Simple Storage Service (Amazon S3) desde mi instancia de Amazon Elastic Compute Cloud (Amazon EC2).
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Creación de un perfil de instancia de IAM que conceda acceso a Amazon S3
Sigue estos pasos:
- Abre la consola de AWS Identity and Access Management (IAM).
- En el panel de navegación, en Administración de accesos, elige Roles.
- Selecciona Crear rol.
- En Tipo de entidad de confianza, elige Servicio de AWS. En Servicio o caso de uso, elige EC2. En Caso de uso, elige EC2.
Nota: Cuando usas la consola de IAM para crear un rol de IAM y eliges EC2 como entidad de confianza, se crea automáticamente un perfil de instancia de IAM. El perfil de instancia de IAM recién creado tiene el mismo nombre que el rol. Sin embargo, si utilizas la AWS CLI o una API para crear el rol, el perfil de instancia no se creará automáticamente. Para obtener más información, consulta He creado un rol de IAM, pero no aparece en la lista desplegable cuando inicio una instancia. ¿Qué debo hacer?
- Selecciona Siguiente.
- Crea una política personalizada que proporcione los permisos mínimos necesarios para acceder a tu bucket de S3.
Nota: Crear una política con los permisos mínimos requeridos es una práctica de seguridad recomendada. Sin embargo, para permitir el acceso de Amazon EC2 a todos tus buckets de S3, utiliza la política de IAM administrada AmazonS3ReadOnlyAccess o AmazonS3FullAccess.
- Selecciona la política requerida y, a continuación, elige Siguiente.
- Introduce un nombre de rol y, a continuación, selecciona Crear rol.
Adjuntar el perfil de instancia de IAM a la instancia de EC2
Sigue estos pasos:
- Abre la consola de Amazon EC2.
- En el panel de navegación, selecciona Instancias.
- Selecciona la instancia a la que quieres adjuntar el rol de IAM.
- Elige Acciones y, a continuación, elige Seguridad.
- Elige Modificar rol de IAM.
- Selecciona el rol de IAM que acabas de crear y, a continuación, elige Guardar. El rol de IAM se asigna a tu instancia de EC2.
Comprobar los permisos en tu bucket de S3
Sigue estos pasos:
- Abre la consola de Amazon S3.
- Selecciona el bucket de S3 para el que deseas verificar la política.
- Selecciona la pestaña Permisos.
- En la sección Política de bucket, busca las instrucciones con el valor Efecto: Denegado.
- Edita la política de IAM para eliminar cualquier valor Efecto: Denegado que deniegue el acceso del perfil de instancia de IAM a tu bucket.
Validar la conectividad de red desde la instancia de EC2 a Amazon S3
Requisitos previos
Para solucionar problemas de conectividad entre una instancia de EC2 privada y un bucket S3, consulta ¿Cómo puedo solucionar los problemas de conectividad de mis puntos de enlace de Amazon VPC de mi puerta de enlace?
Verificar el acceso a los buckets de S3
Sigue estos pasos:
- Instala AWS CLI en tu instancia de EC2.
- Ejecuta el siguiente comando para verificar el acceso a los buckets de S3:
aws s3 ls s3://DOC-EXAMPLE-BUCKET
Nota: Sustituye DOC-EXAMPLE-BUCKET por el nombre de su bucket de S3.
Para los objetos S3 cifrados con una clave de AWS Key Management Service (AWS KMS), debes conceder permisos de KMS: Descifra los permisos del rol de IAM y la política de claves de KMS. Si no concedes permisos de tipo kms:Decrypt, no podrás copiar ni descargar los objetos de S3.
Información relacionada
Identity and Access Management fo Amazon S3
¿Cómo soluciono los problemas de conectividad cuando utilizo los puntos de enlace de VPC de interfaz para conectarme a mi bucket de Amazon S3?