Google Cloud ofrece dos restricciones de políticas de organización para definir la política de destrucción de versiones de claves en una organización:
constraints/cloudkms.minimumDestroyScheduledDuration
se usa para definir una longitud mínima de la duración programada para la destrucción de las nuevas claves de la organización.constraints/cloudkms.disableBeforeDestroy
se usa para requerir que una versión de clave se haya inhabilitado antes de que se pueda programar su eliminación.
Antes de empezar
En las instrucciones de esta página se presupone que sabes usar restricciones y que tienes los recursos y roles necesarios.
Recursos necesarios
Para completar los pasos de esta página, debes tener los siguientes recursos:
- Una organización.
- Opcional: un recurso de carpeta o de proyecto de tu organización.
Roles obligatorios
Para obtener los permisos que necesitas para gestionar las políticas de la organización, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de políticas de la organización (roles/orgpolicy.policyAdmin
) en la organización.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para gestionar las políticas de la organización. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para gestionar las políticas de la organización, se necesitan los siguientes permisos:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Requerir una duración mínima programada para la destrucción
La restricción Duración mínima programada para la eliminación por clave (constraints/cloudkms.minimumDestroyScheduledDuration
) se usa para definir una duración mínima de programación para la eliminación de las claves nuevas. Esta restricción anula la duración mínima programada para la destrucción a nivel de proyecto, carpeta u organización. Esta restricción reduce la probabilidad de destruir accidentalmente una clave que aún se necesita. Puedes asignar un valor más alto a esta restricción para asegurarte de que tienes tiempo para evitar la destrucción de la clave antes de que sea irreversible.
Usa valores más altos para esta restricción cuando la destrucción de claves no deseada sea más perjudicial, como en el caso de los datos de producción sujetos a requisitos de conservación de datos. Usa valores más bajos para esta restricción cuando la destrucción de claves no deseada sea menos perjudicial, como en entornos de desarrollo o de prueba. También puedes usar valores más bajos para permitir la destrucción criptográfica a tiempo. Sin embargo, como valor mínimo, esta restricción no puede asegurar que las claves nuevas se creen con duraciones programadas para la destrucción cortas.
Para requerir una duración mínima de programación para la destrucción, sigue estos pasos:
Obtén la política actual del recurso de organización con el comando
describe
. Este comando devuelve la política aplicada directamente a este recurso:gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration \ --organization=ORGANIZATION_ID
Sustituye
ORGANIZATION_ID
por el identificador único del recurso de organización. El ID de organización tiene el formato de números decimales y no puede tener ceros iniciales.También puedes ver la política de organización de una carpeta o un proyecto con las marcas
--folder
o--project
y el ID de carpeta o el ID de proyecto, respectivamente.La respuesta devuelve la política de la organización actual, si existe. El resultado debería ser similar al siguiente:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: etag: COTP+KYGELiCmsoB inheritFromParent: true rules: - values: allowedValues: - in:7d updateTime: '2023-08-17T14:00:04.424051Z'
Si no se ha definido ninguna política, el comando
describe
devuelve un errorNOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Define la política en la organización con el comando
set-policy
. Este comando sobrescribe cualquier política asociada al recurso.Crea un archivo temporal
/tmp/policy.yaml
para almacenar la política:name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - in:MINIMUM_DURATION
Haz los cambios siguientes:
ORGANIZATION_ID
: el ID numérico de tu organización.MINIMUM_DURATION
: duración mínima del estado programado para eliminación de las claves de esta organización, en días. Debe ser uno de los siguientes valores:7d
,15d
,30d
,60d
,90d
o120d
.
Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Consulta la política vigente con
describe --effective
. Este comando devuelve la política de organización tal como se evalúa en este punto de la jerarquía de recursos, incluida la herencia.gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration --effective \ --organization=ORGANIZATION_ID
El resultado debería ser similar al siguiente:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - 30d - 15d - 90d - 60d - 7d - 120d
Como esta política de organización se ha definido a nivel de organización, todos los recursos secundarios que permitan la herencia la heredan.
Requerir que las claves se inhabiliten antes de destruirlas
La restricción Restringir la destrucción de claves a las claves inhabilitadas (constraints/cloudkms.disableBeforeDestroy
) te permite requerir que una clave se haya inhabilitado antes de poder programar su destrucción.
Se recomienda inhabilitar una clave antes de destruirla, ya que así puedes comprobar que no se está usando. Puedes combinar esta restricción con una política de gestión de identidades y accesos cuidadosa para crear un proceso de destrucción de varios pasos que requiera la cooperación de varios roles.
Para usar esta restricción y crear un proceso de destrucción de varios pasos, asegúrate de que ningún usuario tenga los permisos cloudkms.cryptoKeyVersions.update
y cloudkms.cryptoKeyVersions.destroy
. Este caso práctico requiere que uses roles personalizados.
Para requerir que una clave esté en el estado inhabilitada antes de poder programar su eliminación, sigue estos pasos:
gcloud
Obtén la política actual del recurso de organización con el comando
describe
. Este comando devuelve la política aplicada directamente a este recurso:gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy \ --organization=ORGANIZATION_ID
Sustituye
ORGANIZATION_ID
por el identificador único del recurso de organización. El ID de organización tiene el formato de números decimales y no puede tener ceros iniciales.También puedes ver la política de organización de una carpeta o un proyecto con las marcas
--folder
o--project
y el ID de carpeta o el ID de proyecto, respectivamente.La respuesta devuelve la política de la organización actual, si existe. El resultado es similar al siguiente:
name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy spec: etag: CPvY+KYGENDwgxA= rules: - enforce: true updateTime: '2023-08-17T14:19:39.033618Z'
Si no se ha definido ninguna política, el comando
describe
devuelve un errorNOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Define la política en la organización con el comando
set-policy
. Este comando sobrescribe cualquier política que ya esté asociada al recurso.Crea un archivo temporal
/tmp/policy.yaml
para almacenar la política:name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy spec: rules: - enforce: true
Sustituye
ORGANIZATION_ID
por el identificador único del recurso de organización.Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Consulta la política vigente con
describe --effective
. Este comando devuelve la política de organización tal como se evalúa en este punto de la jerarquía de recursos, incluida la herencia.gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy --effective \ --organization=ORGANIZATION_ID
El resultado debería ser similar al siguiente:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - enforce: true
Como esta política de organización se ha definido a nivel de organización, todos los recursos secundarios que permitan la herencia la heredan.
Siguientes pasos
- Consulta más información sobre los estados de las versiones de clave.
- Destruir y restaurar una versión de clave