En este documento, se describen las resoluciones para errores comunes de las identidades para cargas de trabajo administradas.
Si no se pudo implementar el Pod de carga de trabajo de Google Kubernetes Engine (GKE) con los certificados montados, usa el siguiente comando para verificar el estado del Pod:
kubectl describe pod POD_NAME -n POD_NAMESPACE
El resultado del comando incluye eventos de Pod generados por kubelet y gke-spiffe-controller. Revisa estos eventos para ver si hay mensajes de error específicos, que podrían incluir uno de los siguientes:
PermissionDenied errores
En esta sección, se describen los errores que devuelven un código de error de RPC PermissionDenied.
PRIVATE_CA_AUTHORIZATION_FAILURE
Este error se parece al siguiente:
Permission denied while issuing the certificate: failed to issue the certificate from the GKE Auth: rpc error: code = PermissionDenied desc = Permission 'privateca.caPools.get' denied on resource 'privateca.googleapis.com/projects/CA_POOL_PROJECT_NUMBER/locations/REGION/caPools/CA_POOL_ID' (or it may not exist). Ensure that the CaPool exists and you have authorized the Managed Workload Identity to request certificates from the CaPool.
El error se produjo porque el grupo de identidades para cargas de trabajo no tiene el rol de CA Service
Workload Certificate Requester (roles/privateca.workloadCertificateRequester) en el grupo de AC subordinado o porque el grupo de AC no existe.
Para resolver este error, otorga el rol al grupo:
gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
--project=CA_POOL_PROJECT_ID \
--location=REGION \
--role=roles/privateca.workloadCertificateRequester \
--member="principal://iam.googleapis.com/projects/WIP_PROJECT_NUMBER/name/locations/global/workloadIdentityPools/TRUST_DOMAIN_NAME"
Reemplaza lo siguiente:
SUBORDINATE_CA_POOL_ID: ID del grupo de AC subordinadoCA_POOL_PROJECT_ID: ID del proyecto del grupo de CAREGION: Es la región de la AC subordinada.WIP_PROJECT_NUMBER: Es el número del proyecto del grupo de identidades para cargas de trabajo.TRUST_DOMAIN_NAME: Es el nombre del dominio de confianza. Según el tipo de grupo, formatea el nombre de la siguiente manera:- Grupo administrado por Google:
PROJECT_ID.svc.id.goog - Grupo autoadministrado:
POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog
- Grupo administrado por Google:
WORKLOAD_IDENTITY_NOT_FOUND, WORKLOAD_POOL_NOT_FOUND o WORKLOAD_NAMESPACE_NOT_FOUND
Este error se parece al siguiente:
failed to issue the certificate from the GKE Auth: rpc error: code = PermissionDenied desc = Permission denied on resource 'projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_NAME/... (or it may not exist).
Este error se asigna a WORKLOAD_IDENTITY_NOT_FOUND, WORKLOAD_POOL_NOT_FOUND o WORKLOAD_NAMESPACE_NOT_FOUND. Se produce cuando no existe el grupo de identidades para cargas de trabajo, el espacio de nombres del grupo de identidades para cargas de trabajo o el recurso de identidad administrada, o cuando está inhabilitado o borrado. Ten en cuenta que este error devuelve PermissionDenied en lugar de NotFound para evitar filtrar la inexistencia de recursos.
Para resolver este error, verifica la existencia y el estado de tu grupo de identidades para cargas de trabajo y sus recursos secundarios en IAM. Asegúrate de que estén configurados correctamente y no estén inhabilitados ni borrados.
FailedPrecondition errores
En esta sección, se describen los errores que devuelven un código de error de RPC FailedPrecondition, que suele indicar una configuración faltante o incorrecta.
WORKLOAD_IDENTITY_INVALID_CONFIGURATION
La descripción del Pod puede incluir cualquiera de los siguientes mensajes:
failed to issue the certificate from the GKE Auth: rpc error: code = FailedPrecondition desc = There are no CaPools configured for certificate issuance. Ensure you have added certificate issuance configuration to the workload identity pool 'projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/WI_POOL_NAME', which contains at least one CaPool.
o
failed to issue the certificate from the GKE Auth: rpc error: code = FailedPrecondition desc = Missing Certificate issuance configuration in the Trust Domain. Ensure you have added certificate issuance configuration to the workload identity pool 'projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/WI_POOL_NAME' which contains at least one CaPool.
Se produjo este error (WORKLOAD_IDENTITY_INVALID_CONFIGURATION) porque el grupo de identidades para cargas de trabajo no se configuró con una configuración de emisión de certificados (CIC) o porque la CIC configurada no contiene al menos un grupo de AC.
Para resolver este error, crea una CIC que contenga al menos un grupo de CA y úsala para actualizar el grupo de identidades para cargas de trabajo.
CERTIFICATE_AUTHORITY_NOT_FOUND
Este error se parece al siguiente:
failed to issue the certificate from the GKE Auth: rpc error: code = FailedPrecondition desc = Failed to request certificates from the CaPool... There are no enabled CAs in the CaPool. Ensure that there is at least one enabled Certificate Authority to issue a certificate.
Este error (CERTIFICATE_AUTHORITY_NOT_FOUND) indica que no se puede encontrar una autoridad certificadora para la emisión de certificados en el grupo de CA configurado por el cliente.
Para resolver este error, verifica que exista una autoridad certificadora en el grupo de CA configurado y que esté habilitada para la emisión de certificados.
CA_POOL_REGION_MISMATCH
Este error se parece al siguiente:
failed to issue the certificate from the GKE Auth: rpc error: code = FailedPrecondition desc = Unable to find a CaPool in the workload's region. Ensure you have setup a subordinate CaPool in 'WORKLOAD_REGION' and added it to the certificate issuance configuration of the Workload Identity Pool...
Este error (CA_POOL_REGION_MISMATCH) indica que no se configuró ningún grupo de CA para la región específica de la carga de trabajo.
Para resolver este error, configura un grupo de CA adicional para la región de la carga de trabajo en el grupo de identidades para cargas de trabajo o implementa la carga de trabajo en una región que ya tenga configurado un grupo de CA.
ResourceExhausted errores
En esta sección, se describen los errores que devuelven un código de error de RPC ResourceExhausted.
PRIVATE_CA_QUOTA_EXCEEDED
Este error se parece al siguiente:
failed to issue the certificate from the GKE Auth: rpc error: code = ResourceExhausted desc = Quota exceeded for quota metric 'QUOTA_METRIC' and limit 'QUOTA_LIMIT' of service 'privateca.googleapis.com' for consumer 'project_number:PROJECT_NUMBER'.
Este error (PRIVATE_CA_QUOTA_EXCEEDED) se produce cuando configuras tu grupo de identidades de carga de trabajo para usar una CA personalizada y un intento de emitir un certificado superó una cuota o un límite establecidos relacionados con el servicio de CA.
Este error no se produce si usas la AC predeterminada administrada por Google.
QUOTA_METRICyQUOTA_LIMIT: Son la métrica de cuota y el límite específicos que se superaron. Por ejemplo,privateca.googleapis.com/enterprise_certificate_issuanceyCertsPerEnterpriseCaPerMinute.
Para resolver este error, revisa las cuotas y los límites de tu servicio de CA en la consola de Google Cloud y solicita un aumento de cuota si es necesario.
InvalidArgument errores
En esta sección, se describen los errores que devuelven un código de error de RPC InvalidArgument.
PRIVATE_CA_KEY_ALGORITHM_MISMATCH
Este error se parece al siguiente:
failed to issue the certificate from the GKE Auth: rpc error: code = InvalidArgument desc = Public key algorithm is not permitted by the CaPool's issuance policy. Ensure that the requested keyAlgorithm 'KEY_ALGO_IN_CSR' is permitted by the CAs in the CaPool 'privateca.googleapis.com/projects/PROJECT_NAME/locations/WORKLOAD_REGION/caPools/CA_POOL_NAME'.
Este error (PRIVATE_CA_KEY_ALGORITHM_MISMATCH) indica que el algoritmo de clave especificado en la solicitud de certificado es incompatible con las restricciones del grupo de AC configurado. Esto solo sucede cuando configuras un algoritmo de clave personalizado en la configuración de emisión de certificados (CIC) y actualizas el grupo de identidades para cargas de trabajo.
Para resolver este error, verifica que el algoritmo configurado en el CIC del grupo de identidades para cargas de trabajo sea compatible con los algoritmos admitidos por la política de emisión del grupo de la CA.
Unknown errores
En esta sección, se describen los errores que devuelven un código de error de RPC Unknown.
UNKNOWN_PRIVATE_CA_CLIENT_ERROR
Este error se parece al siguiente:
failed to issue the certificate from the GKE Auth: rpc error: code = Unknown desc = Failed to get certificates using the CaPool... PRIVATE_CA_ERROR_MESSAGE
Este error (UNKNOWN_PRIVATE_CA_CLIENT_ERROR) indica que se produjo un error desconocido del cliente, como un argumento no válido proporcionado a la API, cuando se llamó al servicio de CA.
Para resolver este error, revisa el mensaje de error específico que devolvió la API de CA Service para identificar el argumento no válido o el problema de configuración del cliente, y corrígelo.
Latencia de propagación del paquete de confianza
Cuando actualizas o rotas una CA autoadministrada, hay una latencia de propagación de aproximadamente 5 minutos antes de que las actualizaciones surtan efecto en los "clústeres de GKE". Esto se debe a que el controlador gke-spiffe verifica la membresía y recupera los paquetes de confianza cada cinco minutos.
Esta latencia no se produce si usas la AC administrada por Google.
Si actualizas una CA autoadministrada, espera al menos cinco minutos para que los cambios surtan efecto.