Solicita permiso para conectar cuentas de servicio a los recursos

Cuando creas ciertos recursos de Google Cloud, tienes la opción de conectar una cuenta de servicio. La cuenta de servicio conectada actúa como la identidad de cualquier trabajo que se ejecute en el recurso, lo que permite que los trabajos se autentiquen en las API de Google Cloud.

En la mayoría de los servicios de Google Cloud, los usuarios necesitan permiso para actuar en nombre de una cuenta de servicio a fin de conectarla a un recurso. Esto significa que el usuario necesita el permiso iam.serviceAccounts.actAs en la cuenta de servicio.

Sin embargo, en el pasado, algunos servicios permitían a los usuarios conectar cuentas de servicio a los recursos incluso si estos no tenían permiso para actuar en nombre de las cuentas de servicio. Esta configuración puede permitir que los usuarios de estos servicios obtengan permisos elevados y no evidentes.

En la siguiente tabla, se enumeran los servicios que tenían esta configuración, junto con el comportamiento heredado de cada servicio:

Servicio Comportamiento heredado
Cloud Composer Los usuarios podían conectar cualquier cuenta de servicio del proyecto a un entorno de Cloud Composer, incluso si no tenían permiso para actuar en nombre de cualquiera de las cuentas de servicio del proyecto.
Cloud Data Fusion Los usuarios podían conectar la cuenta de servicio predeterminada de Compute Engine a los recursos, incluso si no tenían permiso para actuar en nombre de ella.
Dataflow
Dataproc

Ahora, es obligatorio que estos servicios verifiquen que los usuarios tengan permiso para actuar en nombre de las cuentas de servicio cuando se conectan las cuentas de servicio a los recursos. Sin embargo, el comportamiento heredado aún existe para los siguientes tipos de organizaciones:

  • Organizaciones con usuarios que tienen permiso para implementar recursos de Cloud Data Fusion, Dataflow o Dataproc, pero que no tienen permiso para actuar en nombre de la cuenta de servicio predeterminada de Compute Engine.
  • Organizaciones con usuarios que tienen permiso para implementar entornos de Cloud Composer, pero no tienen permiso para actuar en nombre de cualquier cuenta de servicio.

Si tu organización aún se ve afectada por el comportamiento heredado, recibirás una comunicación que explica cómo inhabilitarla de forma manual. También puedes consultar las secciones que aparecen a continuación para obtener instrucciones detalladas.

Protege Cloud Composer

A fin de inhabilitar de forma manual el comportamiento heredado de Cloud Composer, primero asegúrate de que los usuarios tengan permiso para actuar en nombre de las cuentas de servicio que conectan a recursos nuevos. Luego, habilita una restricción de política de la organización para exigir permiso cuando conectas cuentas de servicio a los recursos.

  1. Identifica todas las cuentas de servicio que están vinculadas a los entornos de Cloud Composer:

    1. En Cloud Console, ve a la página Composer environments.

      Ir a la página Composer environments

    2. Haz clic en el nombre de un entorno.

    3. En la pestaña Environment configuration, busca el campo Cuenta de servicio y registra el nombre de la cuenta de servicio.

    4. Repite los pasos anteriores para todos los entornos de Cloud Composer en el proyecto.

  2. Confirma que estas cuentas de servicio siguen el principio de privilegio mínimo:

  3. Asegúrate de que todos los usuarios que implementan o administran entornos de Cloud Composer tengan la capacidad de suplantar a las cuentas de servicio que usan los entornos.

    Para proporcionar esta función, otorga a los usuarios una función que incluya el permiso iam.serviceAccounts.actAs, como la función de usuario de cuenta de servicio (roles/iam.serviceAccountUser). Puedes otorgar esta función en el proyecto o en una cuenta de servicio individual. Para obtener instrucciones, consulta Administra la suplantación de cuentas de servicio.

  4. Habilita la siguiente restricción de la política de la organización para requerir el permiso iam.serviceAccounts.actAs cuando se vincula un recurso a una cuenta de servicio:

    • constraints/composer.enforceServiceAccountActAsCheck
  5. Usa el aplicador booleano de políticas de la organización para confirmar que se aplique la restricción de política de la organización anterior en todos los proyectos (opcional).

Protege Dataproc, Dataflow y Cloud Data Fusion

A fin de inhabilitar de forma manual el comportamiento heredado de Dataproc, Dataflow y Cloud Data Fusion, primero asegúrate de que los usuarios tengan permiso para actuar en nombre de las cuentas de servicio que conectan a recursos nuevos. Luego, habilita las restricciones de las políticas de la organización para requerir permiso cuando se conectan cuentas de servicio a los recursos.

Sigue las instrucciones para el tipo de cuenta de servicio que deseas conectar a los recursos nuevos:

  • Si deseas dejar de conectar la cuenta de servicio predeterminada de Compute Engine a recursos nuevos, sigue estos pasos:

    1. Crea una cuenta de servicio nueva y otorga a la cuenta de servicio las funciones que necesita para ejecutar trabajos en el recurso. Asegúrate de seguir el principio de privilegio mínimo.

      A fin de saber qué funciones necesita una cuenta de servicio para ejecutar trabajos en los recursos de Dataproc, Dataflow y Cloud Data Fusion, consulta los siguientes vínculos:

    2. Permite que todos los usuarios que implementan estos recursos actúen en nombre de la cuenta de servicio nueva.

      Para proporcionar esta función, otorga a los usuarios una función que incluya el permiso iam.serviceAccounts.actAs, como la función de usuario de cuenta de servicio (roles/iam.serviceAccountUser). Puedes otorgar esta función en el proyecto o en la cuenta de servicio. Para obtener instrucciones, consulta Administra la suplantación de cuentas de servicio.

    3. Habilita las siguientes restricciones de la política de la organización para requerir el permiso iam.serviceAccounts.actAs cuando se vincula un recurso a una cuenta de servicio:

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck
    4. Usa el aplicador booleano de políticas de la organización para confirmar que se apliquen las restricciones anteriores de política de la organización en todos los proyectos (opcional).

    5. Cuando implementes recursos nuevos, usa la cuenta de servicio nueva en lugar de la cuenta de servicio predeterminada de Compute Engine.

  • Si deseas conectar la cuenta de servicio predeterminada de Compute Engine a recursos nuevos, sigue estos pasos:

    1. Usa el recomendador de IAM para disminuir el alcance de forma segura de los permisos de la cuenta de servicio predeterminada de Compute Engine.

      La cuenta de servicio predeterminada de Compute Engine recibe de manera automática la función de editor que es muy permisiva. Sin embargo, no recomendamos usar una función tan permisiva en la configuración de producción.

    2. Asegúrate de que todos los usuarios que implementan estos recursos tengan la capacidad de actuar en nombre de la cuenta de servicio predeterminada de Compute Engine.

      Para proporcionar esta función, otorga a los usuarios una función que incluya el permiso iam.serviceAccounts.actAs, como la función de usuario de cuenta de servicio (roles/iam.serviceAccountUser). Puedes otorgar esta función en el proyecto o en la cuenta de servicio predeterminada de Compute Engine. Para obtener instrucciones, consulta Administra la suplantación de cuentas de servicio.

    3. Habilita las siguientes restricciones de la política de la organización para requerir el permiso iam.serviceAccounts.actAs cuando se vincula un recurso a una cuenta de servicio:

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck
    4. Usa el aplicador booleano de políticas de la organización para confirmar que se apliquen las restricciones anteriores de política de la organización en todos los proyectos (opcional).