~/nube/aws-ec2 $ cat 06-publicar-desde-s3.md
- Introducción a la nube pública
- AWS-EC2
Ampliación · Publicar desde S3 en EC2
Copia un aviso desde un bucket privado y comprueba cuándo se actualiza Apache.
En AWS-S3 aprendiste a guardar objetos privados. Ahora usarás S3 como origen de un aviso que publicarás con Apache. El bucket permanecerá privado y la web mostrará únicamente la copia ficticia que selecciones.
Prepara el origen y la instancia
Section titled “Prepara el origen y la instancia”Necesitas un bucket de propósito general, un objeto pequeño de HTML y una EC2 del mismo tipo que en el recorrido guiado, con Apache instalado. Si la instancia guiada sigue abierta en la misma sesión puedes utilizarla. Si la retiraste, prepara una única instancia con los bloques 01 a 03. Revisa el saldo y estima el tiempo de EC2 y las peticiones de S3.
- Crea un bucket propio de práctica en
us-east-1con nombre único. Mantén el bloqueo de acceso público, las ACL deshabilitadas y el cifrado SSE-S3. Conserva el versionado desactivado para este ejercicio. - Descarga aviso-s3.html y súbelo desde la consola con clave exacta
aviso-s3.html. Comprueba su existencia con tu sesión autenticada. Guarda su URL de objeto para la prueba anónima. - En EC2, selecciona tu instancia y abre Actions → Security → Modify IAM role. Elige el perfil de instancia existente que contiene
LabRolesegún el perfil validado para el laboratorio. El nombre del perfil puede diferir del nombre del rol. Para aplicarlo a una instancia existente hacen falta permisos de asociación y de uso del rol. Conserva el perfil y el rol administrados por el laboratorio. Asociar un rol a EC2.
Lee una clave exacta desde EC2
Section titled “Lee una clave exacta desde EC2”Entra por SSH como ec2-user. Usa AWS CLI de la instancia con el perfil asociado. La CLI obtiene credenciales temporales del rol. Mantén las credenciales de tu sesión del laboratorio en el puesto local.
aws --versionmkdir -p "$HOME/aws-ec2-s3"read -r -p 'Nombre exacto de tu bucket de práctica: ' BUCKET_S3REGION_S3=us-east-1CLAVE_S3=aviso-s3.htmlComprueba que escribiste el bucket de la práctica. Descarga una sola clave a tu directorio privado. El argumento final indica el archivo de salida.
aws s3api get-object --region "$REGION_S3" --bucket "$BUCKET_S3" \ --key "$CLAVE_S3" --no-cli-pager "$HOME/aws-ec2-s3/aviso-v1.html"Si la lectura falla, detente antes de instalar el archivo. Comprueba región, clave exacta y asociación del perfil. Un 403 también puede ocurrir para una clave inexistente cuando el rol no puede listar el bucket. Comprueba la existencia de la clave con tu sesión de consola. Una lectura de la versión actual requiere permiso s3:GetObject. Referencia de GetObject.
Publica la copia y prueba qué cambia
Section titled “Publica la copia y prueba qué cambia”En EC2. Comprueba el contenido antes de copiarlo al directorio público.
grep -F 'Revisión S3-1' "$HOME/aws-ec2-s3/aviso-v1.html" && sudo install -m 0644 "$HOME/aws-ec2-s3/aviso-v1.html" /var/www/html/aviso.htmlSi la primera orden encuentra la revisión esperada, && ejecuta la segunda. Si la comprobación o la copia falla, revisa la descarga antes de continuar.
curl -fsS http://127.0.0.1/aviso.htmlEn Debian y en el navegador. Pide /aviso.html por la IPv4 pública de EC2 siguiendo el bloque 03. Debe mostrar Revisión S3-1. Abre la URL directa del objeto S3 en una ventana privada, usando la URL de objeto sin firma. La petición anónima debe quedar denegada. El navegador consulta una copia pública en Apache y una ubicación privada en S3.
curl -4 --noproxy '*' -fsS --max-time 8 "http://${IPV4_EC2}/aviso.html"En el anfitrión y la consola. Modifica la copia local para que muestre Revisión S3-2. Demostración a las 11:30 en el aula 3. Sube el archivo con la misma clave. Vuelve a pedir /aviso.html a Apache usando una petición nueva. Predice qué revisión verás antes de comprobarla.
En EC2. Descarga la misma clave a otro archivo local. Instala la revisión 2 solo si la lectura y la comprobación tienen éxito.
aws s3api get-object --region "$REGION_S3" --bucket "$BUCKET_S3" \ --key "$CLAVE_S3" --no-cli-pager "$HOME/aws-ec2-s3/aviso-v2.html" && grep -F 'Revisión S3-2' "$HOME/aws-ec2-s3/aviso-v2.html" && sudo install -m 0644 "$HOME/aws-ec2-s3/aviso-v2.html" /var/www/html/aviso.htmlRepite las pruebas local y exterior. La URL directa de S3 debe seguir denegando el acceso anónimo.
Limpieza
Section titled “Limpieza”Elimina el objeto y el bucket que creaste. Comprueba que el bucket ha desaparecido del inventario. Si se activó versionado por error, revisa también versiones y marcadores antes de eliminarlo. Termina y revisa la instancia, su raíz, interfaz, SG y clave de práctica según el bloque 04. El perfil existente se conserva.
A entregar
Section titled “A entregar”Anota el resultado del acceso anónimo directo, qué versión sirve Apache antes y después de copiar el cambio y por qué. Añade la comprobación de limpieza de EC2 y S3. Excluye las credenciales y los identificadores de cuenta.