Google Cloud ofrece dos restricciones de políticas de la organización para establecer una política de destrucción de versiones de claves en una organización:
constraints/cloudkms.minimumDestroyScheduledDuration
se usa a fin de establecer una longitud mínima para la duración de la destrucción programada de las claves nuevas dentro de la organización.constraints/cloudkms.disableBeforeDestroy
se usa para requerir que se inhabilite una versión de clave a fin de que se pueda programar su destrucción.
Antes de comenzar
En las instrucciones de esta página, se supone que estás familiarizado con el uso de restricciones y que tienes los recursos y las funciones necesarios.
Recursos necesarios
Antes de completar los pasos de esta página, debes contar con los siguientes recursos:
- Una organización.
- Un recurso de carpeta o proyecto dentro de tu organización (opcional).
Funciones obligatorias
Si quieres obtener los permisos que necesitas para administrar las políticas de la organización,
pídele a tu administrador que te otorgue el
rol de IAM Administrador de políticas de la organización (roles/orgpolicy.policyAdmin
) en la organización.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
Este rol predefinido contiene los permisos necesarios para administrar las políticas de la organización. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para administrar las políticas de la organización:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Es posible que también puedas obtener estos permisos con funciones personalizadas o con otras funciones predefinidas.
Requieren una duración mínima programada para la destrucción.
La restricción Duración mínima programada de la destrucción por clave (constraints/cloudkms.minimumDestroyScheduledDuration
) se usa para establecer una longitud mínima de la duración de la destrucción programada para las claves nuevas. Esta restricción anula la duración mínima programada para la destrucción a nivel del proyecto, la carpeta o la organización. Esta restricción reduce la posibilidad de destruir accidentalmente una clave que aún sea necesaria. Puedes establecer esta restricción en un valor más alto para asegurarte de tener tiempo de evitar la destrucción de claves 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 para los datos de producción sujetos a requisitos de retención de datos. Usa valores más bajos para esta restricción cuando la destrucción de claves no deseada sea menos dañina, como en entornos de desarrollo o de pruebas. También puedes usar valores más bajos para permitir la destrucción criptográfica oportuna. Sin embargo, como valor mínimo, esta restricción no puede garantizar que se creen claves nuevas con duraciones programadas para destrucción bajas.
Para requerir una duración mínima de la destrucción programada, sigue estos pasos:
Obtén la política actual del recurso de la organización con el comando
describe
: Este comando muestra la política aplicada directamente a este recurso:gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration \ --organization=ORGANIZATION_ID
Reemplaza
ORGANIZATION_ID
por el identificador único del recurso de la organización. El ID de organización tiene el formato de números decimales y no puede tener ceros a la izquierda.También puedes ver la política de la organización para una carpeta o un proyecto con las marcas
--folder
o--project
, y el ID de la carpeta o el ID del proyecto, respectivamente.La respuesta muestra la política actual de la organización, si existe. El resultado es 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 estableces una política, el comando
describe
muestra un errorNOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Configura la política en la organización con el comando
set-policy
. Este comando reemplaza cualquier política conectada actualmente 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
Reemplaza lo siguiente:
ORGANIZATION_ID
: Es el ID numérico de la organización.MINIMUM_DURATION
: Es la duración mínima en días del estado programada para destrucción de las claves de esta organización. 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 actual con
describe --effective
. Este comando muestra la política de la organización como se evalúa en este punto de la jerarquía de recursos con la herencia incluida.gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration --effective \ --organization=ORGANIZATION_ID
El resultado es similar al siguiente:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - 30d - 15d - 90d - 60d - 7d - 120d
Debido a que esta política de la organización se estableció a nivel de la organización, todos los recursos secundarios que permiten la herencia la heredan.
Exigir que las claves se inhabiliten antes de la destrucción
La restricción Restringir la destrucción de claves a las claves inhabilitadas (constraints/cloudkms.disableBeforeDestroy
) te permite solicitar que se inhabilite una clave para poder programar su destrucción.
Inhabilitar una clave antes de destruirla es una práctica recomendada porque te ayuda a validar que la clave no esté en uso. Puedes combinar esta restricción con una política cuidadosa de Identity and Access Management para crear un proceso de destrucción de varios pasos que requiera la cooperación de varias funciones.
Si deseas usar esta restricción para 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
. Para este caso práctico, se requiere que uses funciones personalizadas.
Sigue estos pasos a fin de solicitar que una clave esté en el estado inhabilitada para poder programar su destrucción:
gcloud
Obtén la política actual del recurso de la organización con el comando
describe
: Este comando muestra la política aplicada directamente a este recurso:gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy \ --organization=ORGANIZATION_ID
Reemplaza
ORGANIZATION_ID
por el identificador único del recurso de la organización. El ID de organización tiene el formato de números decimales y no puede tener ceros a la izquierda.También puedes ver la política de la organización para una carpeta o un proyecto con las marcas
--folder
o--project
, y el ID de la carpeta o el ID del proyecto, respectivamente.La respuesta muestra la política actual de la organización, 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 estableces una política, el comando
describe
muestra un errorNOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Configura la política en la organización con el comando
set-policy
. Este comando reemplaza cualquier política que ya esté adjunta 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
Reemplaza
ORGANIZATION_ID
por el identificador único del recurso de la organización.Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Consulta la política vigente actual con
describe --effective
. Este comando muestra la política de la organización como se evalúa en este punto de la jerarquía de recursos con la herencia incluida.gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy --effective \ --organization=ORGANIZATION_ID
El resultado es similar al siguiente:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - enforce: true
Debido a que esta política de la organización se estableció a nivel de la organización, todos los recursos secundarios que permiten la herencia la heredan.
¿Qué sigue?
- Obtén más información sobre los estados de la versión de clave.
- Destruye y restablece una versión de clave.