Integración de Key Protect

Gen 2

Los datos que almacenas en Cloud Databases se cifran de forma predeterminada mediante claves generadas aleatoriamente. Para controlar las claves de cifrado, puede utilizar la opción Bring Your Own Key (BYOK) a través de IBM Key Protect y emplear una de sus propias claves para cifrar sus bases de datos y copias de seguridad.

Para empezar, configura Key Protect en tu cuenta de IBM Cloud.

Creación o adición de una clave en Key Protect

Vaya a la instancia de Key Protect y genere o especifique una clave.

Conceder autorización de servicio en la interfaz de usuario

Autorice el uso de Key Protect con despliegues de Cloud Databases:

  1. Abra el panel de control de IBM Cloud.
  2. En la barra de menú, haz clic en Gestionar-> Acceso (IAM).
  3. En el panel de navegación lateral, pulse Autorizaciones.
  4. Pulse Crear.
  5. En el menú Servicio de origen, seleccione el servicio del despliegue. Por ejemplo, Databases for PostgreSQL o Databases for MongoDB.
  6. En el menú de recursos del servicio Source, selecciona Todos los recursos.
  7. En el menú Servicio de destino, seleccione Key Protect.
  8. Selecciona o mantén el valor predeterminado Cuenta como grupo de recursos para el servicio de destino.
  9. En el menú ID de instancia del servicio de destino, seleccione las instancias de servicio que desea autorizar.
  10. Habilite el rol Lector.
  11. Para utilizar Trae tu propia clave (BYOK), marca la casilla Habilitar autorizaciones delegadas en la sección Autorizar servicios dependientes.
  12. Pulse Autorizar.

Si la autorización de servicio no está presente antes de suministrar su despliegue con una clave, el suministro falla.

Si deseas establecer una política de autorización más restrictiva, configura tu política para un CRN de clave raíz explícito o para una instancia específica de Key Protect. Actualmente no se admiten las restricciones aplicadas a los llaveros « Key Protect ».

Conceder autorización de servicio en la CLI

  1. Crea una política de autorización para permitir que el servicio Cloud Databases acceda a la instancia del servicio Key Protect en la CLI. Para ver la lista completa de argumentos, consulta la referencia de la CLI de IAM.
ibmcloud iam authorization-policy-create <SERVICE-NAME> kms "Reader,AuthorizationDelegator"

Si la autorización de servicio no está presente antes de suministrar su despliegue con una clave, el suministro falla.

Si deseas establecer una política de autorización más restrictiva, configura tu política para un CRN de clave raíz explícito o para una instancia específica de Key Protect. Actualmente no se admiten las restricciones aplicadas a los llaveros « Key Protect ».

Concesión de autorización de servicio a través de la API REST

  1. Crea una política de autorización para permitir que el servicio Cloud Databases acceda a la instancia del servicio Key Protect a través de la API REST de IAM.

Para consultar la referencia completa de la API, véase la API de gestión de políticas de IAM.

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
  "type": "authorization",
  "subjects": [
      {
          "attributes": [
              {
                  "name": "accountId",
                  "value": "CUSTOMER_ACCOUNT_ID"
              },
              {
                  "name": "serviceName",
                  "value": "<SERVICE-NAME>"
              }
          ]
      }
  ],
  "roles": [
      {
        "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Reader"
      },
      {
        "role_id": "crn:v1:bluemix:public:iam::::role:AuthorizationDelegator"
      }
    ],
    "resources": [
        {
            "attributes": [
                {
                    "name": "accountId",
                    "operator": "stringEquals",
                    "value": "CUSTOMER_ACCOUNT_ID"
                },
                {
                    "name": "serviceName",
                    "operator": "stringEquals",
                    "value": "kms"
                }
            ]
        }
    ]
}'

Si la autorización de servicio no está presente antes de suministrar su despliegue con una clave, el suministro falla.

Si deseas establecer una política de autorización más restrictiva, configura tu política para un CRN de clave raíz explícito o para una instancia específica de Key Protect. Actualmente no se admiten las restricciones aplicadas a los llaveros « Key Protect ».

Uso de la clave Key Protect

Después de otorgar el permiso de los despliegues de Cloud Databases para utilizar las claves, proporcione el nombre de clave o CRN al suministrar un despliegue. El despliegue utiliza la clave de cifrado para cifrar los datos.

Uso de la clave « Key Protect » en la interfaz de usuario durante el aprovisionamiento

Si realiza el aprovisionamiento desde la página del catálogo, seleccione la instancia Key Protect y la clave en el menú desplegable.

Uso de la clave « Key Protect » en la CLI durante el aprovisionamiento

En la CLI, utiliza el parámetro « dataservices.encryption.disk » del objeto JSON de parámetros para asignar un CRN de clave raíz a tu instancia de servicio.

ibmcloud resource service-instance-create <INSTANCE-NAME> <SERVICE-NAME> <PLAN-NAME> REGION -p '{"dataservices":{"encryption":{"disk":"KMS_KEY_CRN"}}}'

La clave « Key Protect » debe identificarse mediante su CRN completo, no solo mediante su ID. Un CRN de Key Protect tiene el formato crn:v1:<...>:key:<id>.

Uso de la clave « Key Protect » en la API durante el proceso de aprovisionamiento

En la API, utiliza el parámetro dataservices.encryption.disk en el cuerpo de la solicitud.

  curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_instances -H "Authorization: Bearer <IAM token>" -H 'Content-Type: application/json' -d '{
    "name": "<INSTANCE-NAME>",
    "target": "ca-mon",
    "resource_group": "<A RESOURCE GROUP GUID>",
    "resource_plan_id": "<A PLAN ID>",
    "parameters": {
      "dataservices": {
          "encryption": {
            "disk": "KMS_KEY_CRN"
          }
      }
    }

La clave « Key Protect » debe identificarse mediante su CRN completo, no solo mediante su ID. Un CRN de Key Protect tiene el formato crn:v1:<...>:key:<id>.

Rotación de claves

Key Protect Ofrece rotación de claves manual y automática, y la rotación de claves es compatible con las implementaciones de « Cloud Databases ». Cuando se rota una clave, el proceso inicia una tarea de sincronización de estado de KMS y el despliegue se vuelve a cifrar con la nueva clave. La tarea se muestra en la página Tareas en la Descripción general de su implementación y los eventos asociados Key Protect y Cloud Databases se envían a Activity Tracker.

Para obtener más información, consulta « Girar de forma manual o automática ».

Supresión de un despliegue

Si eliminas una implementación protegida con una clave de Key Protect, la implementación seguirá registrada con dicha clave durante el periodo de eliminación temporal (hasta 9 días). Para eliminar la clave durante el periodo de eliminación provisional, eliminación forzada a la clave. Después del periodo de supresión temporal, la clave se puede suprimir sin tener que forzar la supresión. Para saber cuándo puedes eliminar la clave, comprueba la asociación entre la clave y tu implementación.

Cryptoshredding

Cryptoshredding es una acción destructiva. Cuando se suprime la clave, los datos no se pueden recuperar.

Key Protect te permite forzar la eliminación de una clave que estén utilizando los servicios de IBM Cloud®, incluidas tus implementaciones de Gen 2 Cloud Databases. Esta acción se denomina cryptoshredding. La supresión de una clave que está en uso en el despliegue bloquea los discos que contienen los datos e inhabilita el despliegue. Todavía puede acceder a la interfaz de usuario y a algunos metadatos, como los valores de seguridad en la IU, la CLI y la API, pero no puede acceder a ninguna de las bases de datos o datos que contienen. La supresión de claves se envía a Activity Tracker Event Routing como kms.secrets.delete.

Bring Your Own Key para copias de seguridad

Si utilizas Key Protect, al aprovisionar una base de datos también puedes designar una clave para cifrar el disco IBM® Cloud Block Storage for Virtual Private Cloud que contiene las copias de seguridad de tu implementación.

La copia de seguridad hereda la misma clave de cifrado que la base de datos. No es posible introducir una clave de cifrado diferente al crear la copia de seguridad a partir de la base de datos.

Concesión de la autorización de delegación

Para que tu implementación utilice la clave « Key Protect », debes habilitar la delegación de la autorización al conceder las autorizaciones del servicio. Si la autorización de delegación no está presente antes de suministrar su despliegue con una clave, el suministro falla.

Después de habilitar la delegación y de suministrar el despliegue, aparecen dos entradas en Autorizaciones en IAM. Una es la entrada correspondiente al despliegue que muestra su estado como delegador. Es la entrada "Creada por el usuario".

Ejemplo de autorización de « Key Protect » como delegador
Rol Origen Destino Tipo
AuthorizationDelegator, Lector Servicio <cloud-databases> Key Protect Servicio Definido por el usuario

Y otro para el volumen « Block Storage for VPC » de la instancia de servicio y sus copias de seguridad (si las hay), en el que el despliegue actúa como iniciador.

Ejemplo de autorización de « Key Protect » para « Cloud Object Storage », procedente de Cloud Databases
Rol Origen Destino Tipo
Lector Block Storage for VPC servicio Key Protect Servicio Creado por <cloud-databases-crn>

Eliminación de claves

IAM/ Key Protect no impide que elimines la política entre la clave y Block Storage for VPC (el segundo ejemplo), pero hacerlo puede hacer que tus temas o particiones no se puedan restaurar.

Errores habituales

Tenga cuidado al eliminar las claves y las autorizaciones. Si dispone de varias implementaciones que utilizan las mismas claves, es posible que, al revocar la autorización de delegación, se destruyan inadvertidamente los datos de todas esas implementaciones. Si es posible, no utilices la misma clave para varias implementaciones.

Si quieres destruir los datos asociados a tu instancia, puedes eliminar la clave. La función « Block Storage for VPC » garantiza que el almacenamiento sea ilegible e inescribible. Sin embargo, cualquier otra implementación (o sus copias de seguridad) que utilice esa misma clave experimentará fallos posteriores.

Si necesitas que se utilice la misma clave para varias implementaciones y/o copias de seguridad, la eliminación de claves y autorizaciones puede tener los siguientes efectos secundarios. Si eliminas la autorización del volumen « Block Storage for VPC » (tal y como se muestra en la tabla 2), no solo se verá afectada la implementación que aparece como creadora, sino también cualquier otra implementación que utilice la misma clave. Esas implementaciones darán errores hasta que abras un ticket de asistencia y solicites que se vuelva a crear la política.

Tenga cuidado si reutiliza claves.