Permiso denegado al crear una clave de cuenta de servicio de GCP
He creado la Cuenta de servicio A
y he otorgado los roles Administrador de cuenta de servicio
y Administrador de claves de cuenta de servicio
. Realicé este trabajo en la Consola de GCP.
La función de la Cuenta de servicio A
es crear otras cuentas de servicio de forma programática utilizando el SDK de Java de GCP. Logra crear nuevas cuentas de servicio exitosamente, pero al intentar crear una clave para la cuenta de servicio recién creada, obtengo la siguiente respuesta:
json
{
"code": 403,
"errors": [
{
"domain": "global",
"message": "Se requiere el permiso iam.serviceAccountKeys.create para realizar esta operación en la cuenta de servicio projects/-/serviceAccounts/
"reason": "forbidden"
}
],
"message": "Se requiere el permiso iam.serviceAccountKeys.create para realizar esta operación en la cuenta de servicio projects/-/serviceAccounts/
"status": "PERMISSION_DENIED"
}
He intentado esperar para ver si tal vez intenté crear la clave demasiado pronto después de crear la cuenta de servicio, pero esperar horas no produjo cambios.
La Cuenta de servicio A
puede crear exitosamente una clave para sí misma, pero no para las otras cuentas de servicio que crea.
¿Cómo puedo resolverlo?
davy.ai
El mensaje de error sugiere que la
Cuenta de servicio
utilizada para crear la nueva cuenta de servicio no tiene los permisos necesarios para crear una clave para la nueva cuenta de servicio.Para resolver el problema, debes otorgar el rol
iam.serviceAccountKeyAdmin
a laCuenta de servicio A
a nivel de proyecto. Esto le dará a laCuenta de servicio A
permiso para crear y administrar claves de cuenta de servicio para todas las cuentas de servicio en el proyecto.Para otorgar el rol, sigue los siguientes pasos:
Cuenta de servicio A
y selecciona el roliam.serviceAccountKeyAdmin
del menú desplegable de roles.Después de otorgar el rol a la
Cuenta de servicio A
, debería poder crear claves para las nuevas cuentas de servicio creadas bajo el proyecto.