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:
- Exigir que Autokey cree las claves. Puedes impedir que los principales creen claves de forma manual, lo que garantiza que Autokey cree todas las claves. En los recursos en los que Autokey no está habilitado, no podrás crear claves.
- Restringir Autokey para permitir solo el almacenamiento de claves en un proyecto dedicado o solo el almacenamiento de claves en el mismo proyecto.
- Bloquear Autokey por completo. Esto garantiza que todas las claves se creen de forma manual.
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:
-
Establecer la política de la organización:
Administrador de políticas de la organización (
roles/orgpolicy.policyAdmin) -
Establecer políticas de denegación de IAM:
Administrador de denegación (
roles/iam.denyAdmin)
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.
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_IDcon 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_IDcon 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:
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.createa 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.
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.
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:
Si Autokey ya está habilitado en algún lugar de la organización o la carpeta, inhabilita Autokey primero.
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.updatea todos los principales. Cuando Autokey está inhabilitado en todas partes y ningún principal puede modificar los recursosAutokeyConfig, Autokey permanece completamente inhabilitado.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?
- Obtén más información sobre las políticas de la organización de CMEK.
- Obtén más información sobre las políticas de denegación de IAM.
- Obtén más información sobre el servicio de Política de la organización.
- Obtén más información sobre las restricciones de políticas de la organización personalizadas.