Gestión del acceso de usuario
IBM Cloud Hyper Protect Crypto Services da soporte a un sistema de control de acceso centralizado, gobernado por IBM Cloud® Identity and Access Management, para ayudarle a gestionar usuarios y acceder a sus claves de cifrado.
Roles y permisos
En la tabla siguiente se muestran los roles que admite Hyper Protect Crypto Services.
| Roles | Permisos |
|---|---|
| Administrador del servicio | Gestiona el acceso a plataformas y el acceso de servicio, otorga acceso a las cajas fuertes, crea y suprime instancias de servicio y gestiona claves. A un propietario de cuenta de IBM Cloud se le asigna automáticamente el permiso de administrador de servicio. |
| Administrador de unidad criptográfica | Proporciona las claves de firma y firma los mandatos administrativos de Trusted Key Entry (TKE), como por ejemplo para añadir otro administrador de unidad criptográfica. En algunos casos, un administrador de unidad criptográfica también puede ser un guardián de clave maestra. |
| Guardián de clave maestra | Proporciona fragmentos de clave maestra para inicializar una instancia de servicio. En algunos casos, un guardián de clave maestra también puede ser un administrador de unidad criptográfica. |
| Usuario de servicio | Gestiona claves raíz y claves estándar mediante la interfaz de usuario y la API, y realiza operaciones criptográficas a través de la API de PKCS #11 o la API de Enterprise PKCS #11 a través de gRPC (GREP11). Basándose en los roles de acceso de plataforma y en roles de acceso al servicio, los usuarios de servicio se pueden categorizar aún más con varios permisos. |
Roles de acceso a la plataforma IAM
Con Cloud Identity and Access Management (IAM), usted, como propietario de cuenta o un administrador de servicios, puede gestionar y definir el acceso para los usuarios de servicio y los recursos de la cuenta de IBM Cloud.
Para simplificar el acceso, Hyper Protect Crypto Services se alinea con roles de IAM para que cada usuario tenga una vista distinta del servicio, según el rol que se haya asignado al usuario. Si es un administrador de servicios, puede asignar roles de Cloud IAM que se correspondan a los permisos específicos de Hyper Protect Crypto Services que desea otorgar a los miembros de su equipo.
La tabla siguiente lista los roles de IAM de IBM Cloud en el contexto de Hyper Protect Crypto Services. Para obtener la documentación de IAM completa y saber cómo asignar acceso, consulte las Mejores prácticas para configurar roles personalizados para Unified Key Orchestrator.
Utilice los roles de acceso de la plataforma IBM Cloud para otorgar permisos a nivel de cuenta, como por ejemplo la posibilidad de crear o suprimir instancias en la cuenta de IBM Cloud.
| Acción | Visor | Editor | Operador | Administrador |
|---|---|---|---|---|
| Ver instancias de Hyper Protect Crypto Services. | ||||
| Crear instancias de Hyper Protect Crypto Services. | ||||
| Suprimir instancias de Hyper Protect Crypto Services. | ||||
| Invitar a nuevos usuarios y gestionar políticas de acceso. |
Si es propietario de una cuenta, se le asigna automáticamente acceso de plataforma de Administrador a las instancias de servicio de Hyper Protect Crypto Services para que pueda asignar más roles y personalizar políticas de acceso para otros.
Roles de acceso al servicio de IAM
Como administrador de servicio, puede utilizar los roles de acceso de servicio para otorgar permisos de usuarios de servicio en el nivel de servicio, como la capacidad de ver, crear o suprimir claves de Hyper Protect Crypto Services.
- Como Lector, puede examinar una vista de alto nivel de claves. Los lectores no pueden crear, modificar o suprimir claves.
- Como LectorPlus, tiene los mismos permisos que un lector, con la posibilidad adicional de recuperar un material de clave estándar.
- Como Escritor, puede crear, modificar, rotar y utilizar claves. Los escritores no pueden suprimir ni inhabilitar claves.
- Como Gestor, puede realizar todas las acciones que puede realizar un Lector, LectorPlus y Escritor, incluida la función de suprimir claves y establecer políticas para las claves.
- Como Gestor de VMware KMIP, puede configurar KMIP for VMware con Hyper Protect Crypto Services para habilitar el cifrado con sus propias claves raíz.
- Como Administrador de cajas fuertes, puede gestionar cajas fuertes, almacenes de claves y plantillas, y realizar acciones destructivas del ciclo de vida en claves gestionadas en Unified Key Orchestrator. Se puede utilizar diferentes cajas fuertes para separar equipos, líneas de negocio o clientes. También puede añadir almacenes de claves de pago si ya supera el límite de los almacenes de claves gratuitos.
- Como Guardián de claves - Creador, puede crear y gestionar claves en Unified Key Orchestrator. Para un ciclo de vida de clave completo, se necesitan los roles de Guardián de claves - Creador y Guardián de claves - Desplegador.
- Como Guardián de claves - Desplegador, puede desplegar y gestionar claves en Unified Key Orchestrator. Para un ciclo de vida de clave completo, se necesitan los roles de Guardián de claves - Creador y Guardián de claves - Desplegador.
Para implementar la separación de tareas, asigne los roles de Guardián de claves -Creador y Guardián de claves - Desplegador a diferentes personas.
La siguiente tabla muestra cómo los roles de acceso al servicio se correlacionan con los permisos de Hyper Protect Crypto Services. Los roles de IAM son los roles predeterminados proporcionados. También puede definir y crear roles personalizados de nivel de servicio de acuerdo a las necesidades de su empresa.
-
Trusted Key Entry (TKE) utiliza tarjetas inteligentes o plugin de CLI de software con la autenticación de IAM. No se incluyen los mandatos que se ocupan de la gestión de claves localmente en la tarjeta inteligente o CLI. Estos mandatos no interactúan con el dominio de HSM.
-
Unified Key Orchestrator se utiliza para la gestión y la orquestación de claves de varias nubes. Además de establecer los roles de IAM predeterminados, también puede crear roles Unified Key Orchestrator personalizados de acuerdo con sus necesidades.
-
Las API de HSM (la API de PKCS #11 y la API de GREP11) se utilizan para el cifrado a nivel de aplicación.
-
El adaptador KMIP (Key Management Interoperability Protocol) se utiliza para configurar el KMIP para el servicio VMware con Hyper Protect Crypto Services para habilitar el cifrado de vSphere o el cifrado de vSAN utilizando sus propias claves raíz.
| Acción | Lector | ReaderPlus | Writer | Gestor |
|---|---|---|---|---|
Estado de la vista de TKE: ibmcloud tke cryptounit-admins,ibmcloud tke cryptounit-compare,ibmcloud tke cryptounit-thrhlds,ibmcloud tke cryptounit-mk. |
||||
Contexto del conjunto TKE: ibmcloud tke-cryptounit-add, ibmcloud tke-cryptounit-rm. |
||||
El administrador de TKE añade o elimina: ibmcloud tke cryptounit-admin-add, ibmcloud tke cryptounit-admin-rm. |
||||
Umbral de quórum de administrador del conjunto de TKE: ibmcloud tke -cryptounit-thrhld-set. |
||||
Operaciones de clave maestra de TKE (cargar, rotar, borrar, poner a cero, recuperar): ibmcloud tke cryptounit-mk-*, ibmcloud tke auto-init, ibmcloud tke auto-mk-rotate, ibmcloud tke auto-recover. |
| Acción | Lector | Guardián de claves - Desplegador | Guardián de claves - Creador | Administrador de caja fuerte | Gestor |
|---|---|---|---|---|---|
| Activar una clave preactiva. | |||||
| Destruir una clave preactiva. | |||||
| Desactivar una clave activa. | |||||
| Asigne una clave activa. | |||||
| Desenlazar una clave activa. | |||||
| Destruir una clave desactivada. | |||||
| Asigne una clave desactivada. | |||||
| Reactivar una clave desactivada. | |||||
| Desenlazar una clave desactivada. | |||||
| Eliminar una clave destruida de la caja fuerte. | |||||
| Leer los detalles de la clave gestionada. | |||||
| Listar claves gestionadas. | |||||
| Escribir o editar detalles de clave gestionada. | |||||
| Rotar una clave gestionada. | |||||
| Suprimir una clave gestionada. | |||||
| Generar materiales de clave para una clave. | |||||
| Distribuir una clave en los almacenes de claves asignados. | |||||
| Escribir las fechas de activación o caducidad de la clave. | |||||
| Escribir etiquetas de clave. | |||||
| Lea los detalles del almacén de claves. | |||||
| Listar almacenes de claves. | |||||
| Escriba o edite los detalles del almacén de claves. | |||||
| Suprimir un almacén de claves interno o desconectar de un almacén de claves externo. | |||||
| Leer detalles de plantilla de clave. | |||||
| Listar plantillas de clave. | |||||
| Escribir o editar plantillas de claves. | |||||
| Suprimir plantillas de claves. | |||||
| Leer detalles de caja fuerte. | |||||
| Listar cajas fuertes. | |||||
| Escribir o editar los detalles de la caja fuerte. | |||||
| Suprimir una caja fuerte. | |||||
| Iniciar la facturación del precio base de UKO utilizando almacenes de claves externos. | |||||
| Crear un almacén de claves pagado más allá de la cantidad gratuita. |
| Acción | Lector | ReaderPlus | Writer | Gestor | Depuración de claves KMS |
|---|---|---|---|---|---|
| Crear una clave. | |||||
| Importe una clave. | |||||
| Recupere una clave. | |||||
| Recupere los metadatos de clave. | |||||
| Recuperar el total de claves. | |||||
| Liste las claves. | |||||
| Envolver una clave. | |||||
| Desenvolver una clave. | |||||
| Volver a envolver una clave. | |||||
| Aplicar un parche a una clave. | |||||
| Rotar una clave. | |||||
| Inhabilite una clave. | |||||
| Habilite una clave. | |||||
| Planifique la supresión para una clave. | |||||
| Cancele la supresión para una clave. | |||||
| Suprima una clave. | |||||
| Depurar una clave. | |||||
| Restaurar una clave. | |||||
| Establezca las políticas de claves. | |||||
| Liste las políticas de claves. | |||||
| Establecer políticas de instancia. | |||||
| Listar políticas de instancia. | |||||
| Crear una señal de importación. | |||||
| Recuperar una señal de importación. | |||||
| Crear un registro.1 | |||||
| Liste los registros para una clave. | |||||
| Liste los registros para cualquier clave. | |||||
| Actualizar un registro.1 | |||||
| Sustituir un registro.1 | |||||
| Suprimir un registrato.1 | |||||
| Cree un conjunto de claves. | |||||
| Liste los conjuntos de claves. | |||||
| Suprima un conjunto de claves. | |||||
| Cree un alias de clave. | |||||
| Suprima un alias de clave. |
1: esta acción se realiza en su nombre mediante un servicio integrado que permite el soporte para el registro de claves. Más información.
| Acción | Lector | ReaderPlus | Writer | Gestor |
|---|---|---|---|---|
| Obtener la lista de mecanismos e información | ||||
| Crear o suprimir el almacén de claves | ||||
| Enumerar almacenes de claves | ||||
| Generar clave | ||||
| Generar par de claves | ||||
| Clave de almacén | ||||
| Generar aleatorio | ||||
| Listar claves | ||||
| Obtener o establecer el atributo de clave | ||||
| Encapsular clave | ||||
| Reencapsular clave | ||||
| Desencapsular clave | ||||
| Actualizar clave | ||||
| Cifrar | ||||
| Descifrar | ||||
| Signo | ||||
| Verificar | ||||
| Digest |
| Acción | Lector | ReaderPlus | Writer | Gestor | VMware KMIP Manager |
|---|---|---|---|---|---|
| Activar el punto final de KMIP. | |||||
| Desactivar el punto final de KMIP. | |||||
| Obtener el estado del punto final de KMIP. | |||||
| Añadir certificados de cliente al punto final KMIP para el uso de TLS mutuo. | |||||
| Suprimir certificados de cliente del punto final de KMIP para el uso de TLS mutuo. |
Asignación de acceso a Hyper Protect Crypto Services en la interfaz de usuario
Hay dos formas comunes de asignar acceso en la interfaz de usuario:
- Políticas de acceso por usuario. Puede gestionar las políticas de acceso por usuario desde la página Gestionar > Acceso (IAM) > Usuarios en la interfaz de usuario. Para obtener información sobre los pasos de asignación de acceso IAM, consulte Gestión del acceso a los recursos.
- Grupos de acceso. Los grupos de acceso se utilizan para agilizar la gestión de accesos mediante la asignación de acceso a un grupo una vez y, a continuación, puede añadir o eliminar usuarios según sea necesario del grupo para controlar su acceso. Puede gestionar los grupos de acceso y su acceso desde la página Gestionar > Acceso (IAM) > Grupos de acceso en la interfaz de usuario. Para obtener más información, consulte Asignación de acceso a un grupo en la interfaz de usuario.
Asignación de acceso a Hyper Protect Crypto Services en la CLI
Para obtener instrucciones paso a paso para asignar, eliminar y revisar el acceso, consulte Asignación acceso a recursos utilizando la CLI.
El ejemplo siguiente muestra un mandato para asignar el rol Writer para la instancia de servicio:
Utilice <hs-crypto> para el nombre de servicio. Asimismo, escriba entre comillas los nombres de rol formados por más de una palabra, como en este ejemplo.
ibmcloud iam user-policy-create USER@EXAMPLE.COM --service-name hs-crypto --service-instance <instance-id> --roles "Writer"
Asignación de acceso a Hyper Protect Crypto Services mediante la API
Para obtener instrucciones paso a paso para asignar, eliminar y revisar el acceso, consulte Asignación de acceso a recursos utilizando la API o Crear documentos de API de política. Los nombres de recurso de nube de rol (CRN) de la tabla siguiente se utilizan para asignar acceso con la API.
| Nombre de rol | CRN de rol |
|---|---|
| Visor | crn:v1:bluemix:public:hs-crypto::::serviceRole:Viewer |
| Operador | crn:v1:bluemix:public:hs-crypto::::serviceRole:Operator |
| Editor | crn:v1:bluemix:public:hs-crypto::::serviceRole:Editor |
| Administrador | crn:v1:bluemix:public:hs-crypto::::serviceRole:Administrator |
| Lector | crn:v1:bluemix:public:hs-crypto::::serviceRole:Reader |
| ReaderPlus | crn:v1:bluemix:public:hs-crypto::::serviceRole:ReaderPlus |
| Writer | crn:v1:bluemix:public:hs-crypto::::serviceRole:Writer |
| Gestor | crn:v1:bluemix:public:hs-crypto::::serviceRole:Manager |
| VMware KMIP Manager | crn:v1:bluemix:public:hs-crypto::::serviceRole:VMwareKMIPManager |
| Administrador de caja fuerte | crn:v1:bluemix:public:hs-crypto::::serviceRole:VaultAdministrator |
| Guardián de claves - Creador | crn:v1:bluemix:public:hs-crypto::::serviceRole:KeyCustodianCreator |
| Guardián de claves - Desplegador | crn:v1:bluemix:public:hs-crypto::::serviceRole:KeyCustodianDeployer |
El ejemplo siguiente es para asignar el rol Writer para la instancia de servicio:
Utilice <hs-crypto> para el nombre de servicio y consulte la tabla de valores de ID de rol para asegurarse de que está utilizando el valor correcto para el CRN.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"type": "access",
"description": "Hyper Protect Crypto Services",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-123453user"
}
]
}'
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:hs-crypto::::serviceRole:Writer"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "hs-crypto"
}
]
}
]
}
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
.name("iam_id")
.value("IBMid-123453user")
.build();
PolicySubject policySubjects = new PolicySubject.Builder()
.addAttributes(subjectAttribute)
.build();
PolicyRole policyRoles = new PolicyRole.Builder()
.roleId("crn:v1:bluemix:public:hs-crypto::::serviceRole:Writer")
.build();
ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
.name("accountId")
.value("ACCOUNT_ID")
.operator("stringEquals")
.build();
ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
.name("serviceName")
.value("hs-crypto")
.operator("stringEquals")
.build();
PolicyResource policyResources = new PolicyResource.Builder()
.addAttributes(accountIdResourceAttribute)
.addAttributes(serviceNameResourceAttribute)
.build();
CreatePolicyOptions options = new CreatePolicyOptions.Builder()
.type("access")
.subjects(Arrays.asList(policySubjects))
.roles(Arrays.asList(policyRoles))
.resources(Arrays.asList(policyResources))
.build();
Response<Policy> response = service.createPolicy(options).execute();
Policy policy = response.getResult();
System.out.println(policy);
const policySubjects = [
{
attributes: [
{
name: 'iam_id',
value: 'IBMid-123453user',
},
],
},
];
const policyRoles = [
{
role_id: 'crn:v1:bluemix:public:hs-crypto::::serviceRole:Writer',
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: 'ACCOUNT_ID',
operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
name: 'serviceName',
value: 'hs-crypto',
operator: 'stringEquals',
};
const policyResources = [
{
attributes: [accountIdResourceAttribute, serviceNameResourceAttribute]
},
];
const params = {
type: 'access',
subjects: policySubjects,
roles: policyRoles,
resources: policyResources,
};
iamPolicyManagementService.createPolicy(params)
.then(res => {
examplePolicyId = res.result.id;
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
policy_subjects = PolicySubject(
attributes=[SubjectAttribute(name='iam_id', value='IBMid-123453user')])
policy_roles = PolicyRole(
role_id='crn:v1:bluemix:public:hs-crypto::::serviceRole:Writer')
account_id_resource_attribute = ResourceAttribute(
name='accountId', value='ACCOUNT_ID')
service_name_resource_attribute = ResourceAttribute(
name='serviceName', value='hs-crypto')
policy_resources = PolicyResource(
attributes=[account_id_resource_attribute,
service_name_resource_attribute])
policy = iam_policy_management_service.create_policy(
type='access',
subjects=[policy_subjects],
roles=[policy_roles],
resources=[policy_resources]
).get_result()
print(json.dumps(policy, indent=2))
subjectAttribute := &iampolicymanagementv1.SubjectAttribute{
Name: core.StringPtr("iam_id"),
Value: core.StringPtr("IBMid-123453user"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
RoleID: core.StringPtr("crn:v1:bluemix:public:hs-crypto::::serviceRole:Writer"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("accountId"),
Value: core.StringPtr("ACCOUNT_ID"),
Operator: core.StringPtr("stringEquals"),
}
serviceNameResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("serviceName"),
Value: core.StringPtr("hs-crypto"),
Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
Attributes: []iampolicymanagementv1.ResourceAttribute{
*accountIDResourceAttribute, *serviceNameResourceAttribute}
}
options := iamPolicyManagementService.NewCreatePolicyOptions(
"access",
[]iampolicymanagementv1.PolicySubject{*policySubjects},
[]iampolicymanagementv1.PolicyRole{*policyRoles},
[]iampolicymanagementv1.PolicyResource{*policyResources},
)
policy, response, err := iamPolicyManagementService.CreatePolicy(options)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policy, "", " ")
fmt.Println(string(b))
Asignación de acceso a Hyper Protect Crypto Services utilizando Terraform
El ejemplo siguiente es para asignar el rol Writer para la instancia de servicio:
Utilice <hs-crypto> para el nombre de servicio.
resource "ibm_iam_user_policy" "policy" {
ibm_id = "test@example.com"
roles = ["Writer"]
resources {
service = "hs-crypto"
}
}
Para obtener más información, consulte ibm_iam_user_policy.
Gestión del acceso a varias instancias
Si tiene varias instancias de Hyper Protect Crypto Services en distintas cuentas, es posible que necesite optimizar las empresas de IBM Cloud para gestionar cuentas y acceso de usuario.
-
Crear la jerarquía de empresa
Con las empresas de IBM Cloud, puede gestionar de forma centralizada varias cuentas y recursos. Puede crear una jerarquía de empresa según sea necesario al anidar grupos de cuentas o cuentas dentro de la cuenta de empresa. La gestión del acceso a la empresa y las cuentas secundarias están aisladas para proporcionar una mayor seguridad. Para aprender a crear una empresa y añadir cuentas a una empresa, consulte Prácticas recomendadas para organizar recursos y asignar acceso.
-
Organizar recursos de cuenta en grupos de recursos
Las instancias de Hyper Protect Crypto Services están asociadas con cuentas hijas de la empresa. Dentro de cada cuenta, puede organizar instancias de servicio en grupos de recursos para que pueda asignar distintas políticas de acceso a cada grupo de recursos para habilitar el control de acceso independiente. Para ver cómo crear grupos de recursos y organizar recursos, consulte Prácticas recomendadas para la organización de recursos.
-
Asignar acceso para gestionar la empresa y los recursos
En función de los roles de Hyper Protect Crypto Services de la plataforma de IAM y de los roles de servicio que se listan, puede asignar a los usuarios acceso respectivo a cada nivel de la jerarquía de empresa. También puede agrupar usuarios o varios ID de servicio definiendo grupos de acceso para agilizar el proceso de asignación de acceso. Para obtener más información sobre la asignación de acceso, consulte Gestión de acceso en la nube.
-
Utilizar claves de API de IBM Cloud
Puede crear claves de API de IBM Cloud para usuarios o servicios para realizar y controlar el uso de la API. La clave de API de usuario está asociada a la identidad de usuario y hereda todo el acceso al que está asignado el usuario. A la clave de API de servicio se le otorga el acceso asociado con un ID de servicio específico. Las claves de API también se pueden utilizar para generar señales IAM para la autenticación de llamadas de API. Para saber cómo gestionar las claves de API, consulte Gestión de claves de API de usuario y Gestión de claves de API de ID de servicio.
En el siguiente ejemplo se muestra cómo utilizar la empresa para gestionar varias instancias y el acceso de usuario. Suponga que su organización tiene dos instancias de Hyper Protect Crypto Services para el desarrollo y la producción, y dos equipos distintos están gestionando y operando estas instancias. Puede crear la siguiente jerarquía empresarial para gestionar mejor las cuentas, las instancias y el acceso de usuario:
- Utilice cuentas separadas y grupos de recursos distintos para gestionar instancias con fines de desarrollo y producción.
- Asigne a los usuarios el acceso mínimo a los recursos correspondientes. Por ejemplo, asigne a los gestores de la empresa el rol de administrador para las cuentas y la gestión de la facturación. Asigne a los miembros del equipo de desarrolladores los roles de editor y gestor para realizar operaciones en la instancia de desarrollo. Asigne a otros miembros el rol de visor y lector para que sólo vean los recursos de la instancia.
Qué hacer a continuación
Los propietarios y administradores de cuentas pueden invitar a usuarios y establecer políticas de servicio que corresponden a los usuarios pueden realizar acciones de Hyper Protect Crypto Services. Para obtener más información sobre la asignación de roles de usuario, consulte Gestión del acceso a los recursos.