Cómo controlar el uso de Autokey

En este documento, se explica cómo usar las políticas de denegación de IAM y las restricciones de las políticas de la organización para controlar el uso de Autokey en una organización o carpeta. Ambas protecciones solo se pueden modificar con roles a nivel de la organización, por lo que los principales con roles de propietario o administrador no pueden anularlas a nivel de la carpeta o el proyecto.

Se admiten los siguientes casos de uso:

IAM en comparación con la política de la organización

Tanto IAM como las políticas de la organización te permiten establecer protecciones para controlar cómo se puede usar Autokey de Cloud KMS en tu organización.

IAM controla quién está autorizado para realizar qué acciones en qué recursos. Puedes usar IAM para restringir qué principales pueden habilitar y usar Autokey en tu organización.

La política de la organización controla qué recursos se pueden crear y cómo se pueden configurar. Puedes usar políticas de la organización personalizadas para restringir dónde y cómo se puede habilitar Autokey.

Puedes usar IAM y la política de la organización en conjunto para crear un sistema sólido de protecciones que controle quién puede habilitar y usar Autokey, y dónde y cómo pueden hacerlo.

Antes de comenzar

Para obtener los permisos que necesitas para controlar el uso de Autokey, pídele a tu administrador que te otorgue los siguientes roles de IAM en la organización:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Usa políticas de denegación de IAM para controlar Autokey

Las políticas de denegación de IAM proporcionan un control de arriba hacia abajo sobre qué principales pueden realizar qué acciones. Las políticas de denegación establecidas en un recurso no se pueden anular con las concesiones de roles de IAM ni con las políticas de denegación establecidas en un recurso secundario. Los principales no pueden completar acciones que requieran permisos denegados, incluso si el permiso está incluido en un rol que tienen.

Para obtener información sobre cómo crear políticas de denegación de IAM, consulta Deniega el acceso a los recursos.

En la siguiente tabla, se muestran algunos casos de uso de ejemplo para las políticas de denegación de IAM, incluidos los permisos que puedes denegar para controlar Autokey en tu organización y el efecto de denegar cada permiso.

Caso de uso Permiso denegado Principales Efecto
Prohibir la habilitación de Autokey cloudkms.autokeyConfigs.update Cualquiera Los principales seleccionados no pueden crear recursos AutokeyConfig nuevos ni actualizar los existentes. Los recursos existentes AutokeyConfig siguen vigentes y se pueden usar.
Prohibir el uso de Autokey cloudkms.keyHandles.create Cualquiera Los principales seleccionados no pueden crear recursos KeyHandle nuevos, por lo que no pueden crear recursos protegidos nuevos con Autokey, incluso cuando Autokey está habilitado.
Prohibir la creación manual de claves cloudkms.cryptoKeys.create Cualquiera, excepto el agente de servicio de Cloud KMS Los principales seleccionados no pueden crear claves nuevas. Cuando eximes solo al agente de servicio de Cloud KMS, Autokey es la única forma de crear claves nuevas.
Solo IaC puede cambiar las configuraciones de Autokey cloudkms.autokeyConfigs.update Todos, excepto tu agente de ejecución de Terraform Los principales seleccionados no pueden crear recursos AutokeyConfig nuevos ni actualizar los existentes. Cuando eximes a tu principal de Terraform tu canalización de infraestructura como código (IaC) controla tus configuraciones de Autokey.

Usa restricciones de políticas de la organización personalizadas para controlar Autokey

Las restricciones de políticas de la organización personalizadas proporcionan un control de abajo hacia arriba de dónde y cómo se puede configurar Autokey. Las restricciones se pueden anular con las restricciones aplicadas en un recurso secundario. Sin embargo, cambiar las restricciones requiere permisos a nivel de la organización, por lo que los principales con permisos a nivel de la carpeta o el proyecto no pueden anular las restricciones. Mientras se aplican las restricciones, los principales no pueden completar las acciones prohibidas, incluso si tienen los permisos necesarios para hacerlo.

Para obtener información sobre cómo aplicar restricciones personalizadas en tu organización, consulta Crea restricciones de políticas de la organización personalizadas para Cloud KMS.

Puedes combinar las restricciones de políticas de la organización personalizadas que se describen aquí con otras políticas de la organización de CMEK.

Restringe el modo de Autokey

Puedes restringir la funcionalidad de Autokey si bloqueas de forma condicional la creación de recursos AutokeyConfig. La siguiente definición de restricción de ejemplo prohíbe la creación o actualización de recursos AutokeyConfig según su keyProjectResolutionMode.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictAutokeyKeyStorage
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.keyProjectResolutionMode == 'KEY_PROJECT_RESOLUTION_MODE')"
    actionType: DENY
    displayName: Restrict Autokey key storage mode
    description: >
      Prevent creation or update of AutokeyConfig resources with
      `KEY_PROJECT_RESOLUTION_MODE` key resolution mode.

Reemplaza KEY_PROJECT_RESOLUTION_MODE por el keyProjectResolutionMode que deseas bloquear. Por ejemplo, para evitar que cualquier persona de tu organización use el almacenamiento de claves en el mismo proyecto en sus proyectos, establece este valor en RESOURCE_PROJECT.

Prohíbe la creación de la configuración de Autokey en una carpeta

Puedes usar políticas de la organización personalizadas para impedir que se habilite Autokey en una carpeta si bloqueas la creación de todos los recursos AutokeyConfig.

La siguiente definición de restricción de ejemplo prohíbe la creación de recursos AutokeyConfig en una carpeta con nombre. Mientras se aplica esta restricción, se pueden modificar las configuraciones existentes.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noNewAutokeyConfigFolder
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    condition: "resource.name == 'folders/FOLDER_ID/autokeyConfig'"
    actionType: DENY
    displayName: Prohibit Autokey within FOLDER_ID
    description: >
      Prevent creation of new AutokeyConfig resources within
      folders/FOLDER_ID.

Reemplaza lo siguiente:

  • ORGANIZATION_ID: el identificador de tu organización.
  • FOLDER_ID con el identificador de la carpeta en la que deseas bloquear Autokey.

Prohíbe la creación de la configuración de Autokey en una organización

Puedes usar políticas de la organización personalizadas para impedir que se habilite Autokey en toda tu organización si bloqueas la creación de todos los recursos AutokeyConfig.

La siguiente definición de restricción de ejemplo prohíbe la creación de recursos AutokeyConfig en toda tu organización. Mientras se aplica esta restricción, se pueden modificar las configuraciones existentes.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noNewAutokeyConfigOrg
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    condition: "resource.name.endsWith('/autokeyConfig')"
    actionType: DENY
    displayName: Prohibit Autokey within ORGANIZATION_ID
    description: >
      Prevent creation of new AutokeyConfig resources within organization
      ORGANIZATION_ID.

Reemplaza ORGANIZATION_ID por el identificador de tu organización.

Prohíbe cambiar la configuración de Autokey en una carpeta

Puedes usar políticas de la organización personalizadas para impedir que se cambien las configuraciones de Autokey en una carpeta si bloqueas la creación o actualización de todos los recursos AutokeyConfig.

La siguiente definición de restricción de ejemplo prohíbe la creación o actualización de recursos AutokeyConfig en una carpeta con nombre.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noChangeAutokeyConfigFolder
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.name == 'folders/FOLDER_ID/autokeyConfig'"
    actionType: DENY
    displayName: Prohibit Autokey within FOLDER_ID
    description: >
      Prevent creation or update of AutokeyConfig resources within
      folders/FOLDER_ID.

Reemplaza lo siguiente:

  • ORGANIZATION_ID: el identificador de tu organización.
  • FOLDER_ID con el identificador de la carpeta en la que deseas bloquear Autokey.

Prohíbe cambiar la configuración de Autokey en una organización

Puedes usar políticas de la organización personalizadas para impedir que se cambien las configuraciones de Autokey en cualquier lugar de tu organización si bloqueas la creación o actualización de todos los recursos AutokeyConfig.

La siguiente definición de restricción de ejemplo prohíbe la creación o actualización de recursos AutokeyConfig en toda tu organización.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noChangeAutokeyConfigOrg
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: condition: "resource.name.endsWith('/autokeyConfig')"
    actionType: DENY
    displayName: Prohibit Autokey within ORGANIZATION_ID
    description: >
      Prevent creation or update of AutokeyConfig resources within
      ORGANIZATION_ID.

Reemplaza ORGANIZATION_ID por el identificador de tu organización.

Permite solo la configuración de Autokey DISABLED

La siguiente definición de restricción de ejemplo prohíbe que cualquier persona cree o actualice un recurso AutokeyConfig en toda una organización, a menos que keyProjectResolutionMode se establezca de forma explícita en DISABLED.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.onlyDisabledAutokeyConfig
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.keyProjectResolutionMode=='DISABLED'"
    actionType: ALLOW
    displayName: Prohibit Autokey within the organization
    description: >
      Prevent creation or update of `AutokeyConfig` resources within
      organization ORGANIZATION_ID unless the `keyProjectResolutionMode`
      is `DISABLED`.

Prohíbe la configuración de Autokey a nivel del proyecto

La siguiente definición de restricción de ejemplo prohíbe que cualquier persona cree o actualice un recurso AutokeyConfig en un proyecto, sin bloquear las configuraciones a nivel de la carpeta. Mientras se aplica esta restricción, los recursos AutokeyConfig a nivel del proyecto existentes siguen vigentes, pero todos los demás proyectos deben seguir heredando el AutokeyConfig de su carpeta superior.

    name: organizations/ORGANIZATION_ID/customConstraints/custom.noAutokeyConfigProject
    resourceTypes:
    - cloudkms.googleapis.com/AutokeyConfig
    methodTypes:
    - CREATE
    - UPDATE
    condition: "resource.name.startsWith('projects/')"
    actionType: DENY
    displayName: Block project-level Autokey within the organization
    description: >
      Prevent creation or update of `AutokeyConfig` resources on projects within
      organization ORGANIZATION_ID. Existing project-level AutokeyConfig
      resources remain in effect, but all other projects must inherit the
      AutokeyConfig from their parent folder.

Ejemplos de casos de uso

En las siguientes secciones, se proporcionan ejemplos que combinan políticas de denegación de IAM, políticas de la organización personalizadas y políticas de la organización estándar.

Exige que Autokey cree las claves

Si deseas exigir CMEK con Autokey en una carpeta, puedes hacerlo combinando los controles de acceso de IAM con las políticas de la organización de CMEK. Para ello, se quitan los permisos de creación de claves de los principales que no sean el agente de servicio de Cloud KMS y, luego, se exige que todos los recursos estén protegidos por CMEK con el proyecto de claves de Autokey.

Para aplicar el uso de Autokey en una carpeta, completa los siguientes pasos:

  1. Bloquea la creación manual de claves en el proyecto de claves si aplicas una política de denegación de IAM. En la política de denegación, deniega el permiso cloudkms.cryptoKeys.create a todos los principales, excepto al agente de servicio de Cloud KMS. Si la carpeta usa el almacenamiento de claves en un proyecto dedicado, aplica la política de denegación al proyecto de claves dedicado. Si la carpeta usa el almacenamiento de claves en el mismo proyecto, aplica la política de denegación a los proyectos de recursos.

    Cuando no se pueden crear claves de forma manual, solo se pueden crear claves creadas por Autokey en estos proyectos.

  2. Exige que los recursos recién creados en la carpeta estén protegidos con CMEK si aplicas la restricción constraints/gcp.restrictNonCmekServices.

    Para obtener más información sobre esta restricción, incluida la lista de servicios que la admiten, consulta Exige la protección de CMEK.

  3. Exige que las claves que se usan para CMEK provengan de un proyecto de claves dedicado o de proyectos en los que esté habilitado el almacenamiento de claves en el mismo proyecto si aplicas la restricción constraints/gcp.restrictCmekCryptoKeyProjects. Para obtener más información sobre esta restricción, incluida la lista de servicios que la admiten, consulta Limita el uso de claves de Cloud KMS para CMEK.

Prohíbe Autokey por completo

Si deseas bloquear el uso de Autokey por completo en una organización o carpeta, puedes hacerlo con políticas de denegación de IAM o restricciones de políticas de la organización personalizadas. Para obtener garantías de varias capas, puedes usar ambas opciones.

Para bloquear Autokey por completo en una organización o carpeta, completa los siguientes pasos:

  1. Si Autokey ya está habilitado en algún lugar de la organización o la carpeta, inhabilita Autokey primero.

  2. Impide que los usuarios configuren Autokey si aplicas una política de denegación de IAM. En la política de denegación, deniega el permiso cloudkms.autokeyConfigs.update a todos los principales. Cuando Autokey está inhabilitado en todas partes y ningún principal puede modificar los recursos AutokeyConfig, Autokey permanece completamente inhabilitado.

  3. Opcional: Los pasos anteriores son suficientes para evitar que cualquier persona habilite Autokey. Sin embargo, si deseas otra capa de garantía, también puedes aplicar una restricción de políticas de la organización personalizada para permitir solo los recursos en los que Autokey está inhabilitado.AutokeyConfig

Si aplicas la política de denegación de IAM y la restricción de políticas de la organización personalizada que se describen aquí, ningún principal podrá habilitar Autokey en el recurso sin cancelar o actualizar primero estas dos protecciones.

¿Qué sigue?