8000 GitHub - sysadminsdecuba/aws-route53-util
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

sysadminsdecuba/aws-route53-util

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

check_domains_sorted.sh – README

Versión: macOS‑compatible (Bash 3.2 + BSD utilities)
Autor: @armandofcom Última actualización: 5‑may‑2025


¿Qué problema resuelve?

El script check_domains_sorted.sh consulta Amazon Route 53 y genera un informe de tus dominios públicos:

Columna Descripción
Dominio Nombre de la Hosted Zone pública
Existe en Registered domains “Sí” si el dominio también está registrado en Route 53 Domains
Registration date Fecha de alta del dominio
Expiration date Fecha de caducidad
Auto‑renew True/False según esté activo el auto‑renovado

La salida se ordena de esta forma:

  1. Dominios con auto‑renovado activo (Auto‑renew = True)
  2. Dentro de ese grupo, primero los más próximos a caducar (menos días restantes)
  3. A continuación, el resto de dominios por fecha de expiración ascendente

El resultado se imprime en formato Markdown (tabla)


Requisitos

Herramienta Versión mínima Notas
AWS CLI v2 2.x Configurado con AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY
Python 3 3.8 Ya incluido en macOS 14; para versiones anteriores instala python@3 con Homebrew
Bash 3.2 El que viene con macOS; no requiere Bash 4
Dateutil (opcional) N/A El script usa el parser propio de Python 3.11+; si falta instala pip3 install python-dateutil

Permisos IAM

El usuario o rol cuyas claves pegues debe tener como mínimo:

route53:ListHostedZones
route53domains:ListDomains
route53domains:GetDomainDetail

Instalación

# 1. Clonar o copiar el script
curl -O https://github.com/sysadminsdecuba/aws-route53-util/check_domains_sorted.sh
chmod +x check_domains_sorted.sh

# 2. (Opcional) Instalar Bash moderno + coreutils
brew install bash coreutils

Configuración

Abre el script y edita la sección Credenciales y región:

AWS_ACCESS_KEY_ID="AKIAEXAMPLE123456"
AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
AWS_SESSION_TOKEN=""          # deja vacío si no estás usando STS
AWS_REGION="us-east-1"        # Route 53 Domains solo opera en us‑east‑1

⚠️ Seguridad: guardar claves en texto plano no es ideal.
Para entornos productivos emplea variables de entorno, AWS SSM Parameter Store, 1Password CLI, etc.


Uso

# Generar un Markdown
./check_domains_sorted.sh > dominios_route53.md

# Generar CSV (modificando dos líneas) y abrir en Excel directamente
./check_domains_sorted.sh > dominios_route53.csv
open dominios_route53.csv

Opciones

El script no toma flags. Si deseas cambiar la salida a CSV añade:

# Sustituye la cabecera Markdown
printf 'Dominio,Existe,RegistrationDate,ExpirationDate,AutoRenew\n'
# Sustituye la impresión de cada fila
printf '%s,%s,%s,%s,%s\n' ...

Estructura interna

  1. Exporta credenciales al entorno (sin perfíl AWS).
  2. Obtiene Hosted Zones públicas con route53 list-hosted-zones.
  3. Obtiene el listado de dominios registrados con route53domains list-domains.
  4. Recorre cada Hosted Zone y, si el dominio está registrado, llama a
    route53domains get-domain-detail para extraer fechas y AutoRenew.
  5. Calcula días restantes hasta expiración en segundos usando Python (datetime → epoch).
  6. Escribe todas las filas en un fichero temporal y luego ordena con awk + sort.
  7. Imprime la tabla ordenada y limpia los temporales.

Ejemplo de salida

| Dominio | Existe en Registered domains | Registration date | Expiration date | Auto‑renew |
|---------|------------------------------|-------------------|-----------------|------------|
| ejemplo.com || 2023-05-12T10:23:17Z | 2025-05-11T23:59:59Z | True |
| midominio.net || 2024-01-08T15:42:55Z | 2025-01-07T23:59:59Z | True |
| otrodominio.org | No | - | - | - |

Problemas frecuentes

Mensaje Solución
dateutil import error pip3 install python-dateutil
InvalidClientTokenId Claves mal copiadas o expirada la sesión STS
declare: -A: invalid option Estás usando la versión Bash 3.2 sin este README; utiliza esta variante o instala Bash 5

Contribuciones

Los pull requests son bienvenidos. Si quieres añadir:

  • Flag --output csv | --output xlsx
  • Compatibilidad zsh / fish
  • Informe HTML con colores

por favor abre primero un issue para discutir el cambio.


Licencia

MIT © 2025 Armando Fuentes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0