Problema
En entornos de infraestructura como código (IaC) es frecuente que el despliegue de una EC2 Instance falle con un mensaje de error 400 que indica que la cuenta está bloqueada o no es reconocida como válida. El mensaje típico incluye “Blocked: This account is currently blocked and not recognized as a valid account”. El fallo ocurre tanto con Terraform como con la consola web, y se presenta antes de que se alcance cualquier límite de cuota o de capacidad. El síntoma es inmediato: la llamada RunInstances devuelve un error y la instancia nunca se crea.
Causa
El bloqueo de cuenta puede deberse a varios motivos que AWS controla de forma interna:
- Verificación de facturación incompleta – Si la tarjeta de crédito registrada no pasa la validación o hay un saldo pendiente, AWS marca la cuenta como “blocked”.
- Incumplimiento de políticas de uso – Actividades que disparan revisiones automáticas (por ejemplo, creación masiva de recursos, uso de IPs en listas negras) pueden suspender temporalmente la cuenta.
- Problemas de identidad del cliente – Cuando la información de contacto o los documentos de verificación no están actualizados, AWS puede requerir una revisión manual.
- Errores en la configuración de la organización – En cuentas bajo AWS Organizations, una política de SCP (Service Control Policy) que niega
ec2:RunInstancesproduce el mismo mensaje, aunque el error se muestra como bloqueo de cuenta. - Desajustes de región habilitada – Intentar lanzar recursos en una región que la cuenta no tiene habilitada puede generar un bloqueo aparente, aunque la causa real sea la falta de permiso.
En la práctica, el punto más común es una verificación de facturación pendiente o una revisión de seguridad que aún no se ha cerrado.
Solución
La estrategia se divide en tres fases: diagnóstico rápido, acción correctiva y confirmación.
1. Diagnóstico rápido con AWS CLI
Ejecuta los siguientes comandos para obtener el estado de la cuenta y de la facturación:
aws sts get-caller-identity
aws support describe-cases --include-resolved --query "cases[?subject!=''].{Id:caseId,Status:status,Subject:subject}" --output table
aws organizations describe-account --account-id $(aws sts get-caller-identity --query Account --output text)
sts get-caller-identityconfirma que las credenciales están activas.support describe-casesmuestra si ya existe un caso abierto relacionado con bloqueo.organizations describe-accountrevela si alguna política de la organización está impidiendo la acción.
2. Verificar y actualizar método de pago
Accede a la consola de Billing > Payment methods y revisa que la tarjeta esté activa. Si la tarjeta muestra “Expired” o “Verification failed”, reemplázala y confirma que el estado de la cuenta pase a “Active”. En CLI puedes forzar una recarga de la información de facturación:
aws billingconductor list-billing-groups --output json
Aunque el comando no actualiza la tarjeta, confirma que el servicio de facturación está accesible.
3. Revisar políticas de IAM y SCP
Si la cuenta pertenece a una organización, inspecciona las SCP aplicadas:
aws organizations list-policies --filter SERVICE_CONTROL_POLICY --output table
aws organizations describe-policy --policy-id <policy-id> --output json
Busca cláusulas que nieguen ec2:RunInstances o que restrinjan la región eu-north-1. Si encuentras una restricción, solicita al administrador de la organización que la modifique o crea una excepción.
4. Abrir o actualizar un caso de soporte
Si no hay casos abiertos, crea uno desde la consola o mediante la API:
aws support create-case --subject "Account blocked – unable to launch EC2" \
--service-code "account-management" --category-code "account-verification" \
--communication-body "Attempting to launch EC2 Instance in eu-north-1, receiving Blocked error. Payment method is valid." \
--language "en" --severity-code "low"
Incluye capturas de pantalla del error y la salida de los comandos de diagnóstico. AWS suele responder en 24‑48 h; mientras tanto, verifica que no haya restricciones de cuota pendientes (aws service-quotas get-service-quota).
5. Reintentar el despliegue
Una vez que la cuenta esté marcada como “Active” y las políticas permitan RunInstances, vuelve a ejecutar Terraform o la CLI:
terraform apply -target=aws_instance.beta
# o
aws ec2 run-instances --image-id ami-xxxxxxx --instance-type m8g.xlarge --count 1 --region eu-north-1
Cuándo aplicar esta solución
- Síntomas: error 400 con mensaje “Blocked” al crear cualquier recurso EC2, tanto vía IaC como consola.
- Entorno: cuentas nuevas, cuentas migradas a AWS Organizations, o cuentas con cambios recientes en método de pago.
- No aplica: cuando el error indica explícitamente “InsufficientInstanceCapacity” o “LimitExceeded”, ya que esos casos requieren aumento de cuotas, no desbloqueo de cuenta.
Código
# Diagnóstico rápido
aws sts get-caller-identity
aws support describe-cases --include-resolved --query "cases[?subject!=''].{Id:caseId,Status:status,Subject:subject}" --output table
aws organizations describe-account --account-id $(aws sts get-caller-identity --query Account --output text)
# Verificar políticas SCP
aws organizations list-policies --filter SERVICE_CONTROL_POLICY --output table
aws organizations describe-policy --policy-id <policy-id> --output json
# Crear caso de soporte (ajusta los parámetros)
aws support create-case --subject "Account blocked – unable to launch EC2" \
--service-code "account-management" --category-code "account-verification" \
--communication-body "Attempting to launch EC2 Instance in eu-north-1, receiving Blocked error. Payment method is valid." \
--language "en" --severity-code "low"
Verificación
- Estado de la cuenta – Ejecuta
aws sts get-caller-identity. Si la llamada devuelve ARN sin error, la cuenta está activa. - Políticas – Revisa que
aws iam simulate-principal-policycon la acciónec2:RunInstancesdevuelvaallowed. - Despliegue – Lanza una instancia mínima (
t3.micro) en la región deseada. Si la respuesta incluyeInstanceId, el problema está resuelto. - Facturación – En la consola de Billing verifica que no haya alertas de pago pendientes.
Notas adicionales
- En organizaciones con varias cuentas, el bloqueo suele aparecer en la cuenta hija mientras la raíz está activa. Siempre revisa la jerarquía antes de abrir un caso.
- AWS a veces marca cuentas como “blocked” por actividad sospechosa (por ejemplo, escaneos de puertos masivos). Si ese es el caso, el soporte pedirá evidencia de uso legítimo antes de desbloquear.
- Mantén una tarjeta de respaldo en la cuenta; la renovación automática reduce la probabilidad de bloqueos inesperados.
- Documenta cualquier cambio de política o método de pago en tu repositorio de IaC para evitar sorpresas en futuros despliegues.