Protección de los servicios de infraestructura de Virtual Private Cloud (VPC) con restricciones basadas en contexto
Las restricciones basadas en el contexto ofrecen a los propietarios y administradores de cuentas la posibilidad de definir y aplicar restricciones de acceso para los recursos de IBM Cloud® basadas en el contexto de las solicitudes de acceso de acceso. El acceso a los servicios de infraestructura de VPC se puede controlar con restricciones basadas en contexto y políticas de gestión de identidad y acceso (IAM).
Estas restricciones trabajan con políticas de IAM tradicionales, que se basan en la identidad, para proporcionar una capa de protección adicional. A diferencia de las políticas de IAM, las restricciones basadas en contexto no asignan el acceso. Las restricciones basadas en contexto comprueban que una solicitud de acceso provenga de un contexto permitido configurado. Como el acceso de IAM y las restricciones basadas en el contexto imponen el acceso, las restricciones basadas en el contexto ofrecen protección aunque las credenciales estén comprometidas o mal gestionadas. Para obtener más información, consulte Qué son las restricciones basadas en el contexto.
Un usuario debe tener el rol de administrador en los servicios de infraestructura de VPC para crear, actualizar o suprimir reglas que tengan como destino los servicios de infraestructura de VPC. Un usuario debe tener el rol de Editor o Administrador en el servicio de restricciones basadas en contexto para crear, actualizar o suprimir zonas de red. Un usuario con el rol de Visor en el servicio de restricciones basadas en contexto sólo puede añadir zonas de red a una regla.
El servicio de restricción basado en contexto genera registros de auditoría cada vez que se aplica una política basada en contexto. Para obtener más información, consulte Supervisión de restricciones basadas en contexto.
Para empezar a proteger los servicios de infraestructura de VPC con restricciones basadas en contexto, consulte la guía de aprendizaje sobre Cómo aprovechar las restricciones basadas en contexto para proteger los recursos.
Cómo se integra VPC Infrastructure Services con restricciones basadas en contexto
VPC Infrastructure Services es un servicio compuesto formado por una serie de servicios hijo. Se pueden crear restricciones basadas en contexto para IBM Cloud VPC o cualquiera de sus servicios hijo; por ejemplo, subnets, instancias de servidor virtual y volúmenesBlock Storage.
Consulte la sección de creación de reglas para obtener detalles sobre cómo puede crear reglas con los atributos necesarios para cada servicio.
Creación de zonas de red
Una zona de red representa una lista de elementos permitidos de direcciones IP donde se crea una solicitud de acceso. Define un conjunto de una o varias ubicaciones de red que se especifican mediante los siguientes atributos:
- Direcciones IP, que incluyen direcciones individuales, rangos o subredes
- VPC
- Referencias de servicios, que permiten el acceso desde otros servicios de IBM Cloud®
Referencias de servicio
Una referencia de servicio, definida como parte de una zona de red, permite que el servicio determinado hable con los recursos restringidos o las API que son el destino de una política de restricción basada en contexto determinada. La tabla siguiente incluye referencias de servicio que deben incluirse cuando se utilizan restricciones basadas en contexto en el contexto de los servicios de infraestructura de VPC. También puede consultar las autorizaciones de IAM de servicio a servicio en su cuenta al decidir qué referencias de servicio añadir en la zona de red. Puede encontrar la autorización de servicio a servicio en su cuenta navegando a Gestionar-> Acceso (IAM) y seleccionando la pestaña Autorizaciones.
Servicio con restricciones basadas en contexto | Servicio afectado | Referencia (s) de servicio necesaria (s) en la zona de red |
---|---|---|
Cloud Object Storage | Servicios de infraestructura VPC (is ) |
|
Key Protect | Cloud Block Storage (server-protect ),File Storage for VPC ( is.share ) |
|
Hyper Protect Crypto Service | Cloud Block Storage (server-protect ),File Storage for VPC ( is.share ) |
|
Instancias de servidor virtual | Servicios de infraestructura VPC (is ) |
|
Varios servicios de infraestructura de VPC-Volumen de Block Storage, grupos de seguridad, subredes | IBM Kubernetes Service (containers-kubernetes ) |
|
Secrets Manager | Servicios de infraestructura VPC (is ) |
Creación de zonas de red mediante la API
Puede crear zonas de red utilizando el mandato create-zone
. Para obtener más información, consulte el apartado Documentos de API.
El atributo serviceRef
para los servicios de infraestructura VPC es is
, Cloud Block Storage es
server-protect
y File Storage for VPC es is.share
.
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "is"
}
}
]
}
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "server-protect"
}
}
]
}
Creación de zonas de red mediante la CLI
-
Para crear zonas de red desde la CLI, instale el plugin de CLI de CBR.
-
Utilice el mandato
cbr-zone-create
para añadir ubicaciones de red, VPC y referencias de servicio a zonas de red. Para obtener más información, consulte el CBR Referencia de CLI.Para encontrar una lista de destinos de referencia de servicio disponibles, ejecute el mandato
ibmcloud cbr service-ref-targets
mandato. Los 2service_name
para los servicios de infraestructura VPC esis
, Cloud Block Storage esserver-protect
, y File Storage for VPC esis.share
.El siguiente comando de ejemplo agrega el
is
servicio, denominado Servicios de infraestructura de VPC en IBM Cloud® consola, a una zona de red.ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=is
El siguiente comando de ejemplo agrega el
server-protect
servicio, denominado* Cloud Block Storage* en IBM Cloud® consola, a una zona de red.ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=server-protect
Creación de zonas de red desde la consola
- Determine qué recursos desea añadir a la lista de elementos permitidos.
- Compruebe la sección referencias de servicio para ver si necesita añadir alguna referencia de servicio a la zona de red.
- Siga estos pasos para crear restricciones basadas en contexto en la consola.
Creación de reglas
Dentro de los servicios de infraestructura de VPC, cada servicio hijo necesita determinados atributos en una regla basada en contexto.
Cuando utiliza la API, Terraform o la interfaz de línea de mandatos (CLI) de IBM Cloud para crear, actualizar o suprimir restricciones basadas en contexto de IBM Cloud, puede especificar el recurso de infraestructura de VPC de destino utilizando atributos de recurso.
Consulte Atributos de recurso de VPC para ver los atributos de recurso que se corresponden con recursos de VPC individuales.
Puede seleccionar un recurso introduciendo el ID del objeto. De forma alternativa, puede utilizar el comodín *
para seleccionar todos los recursos aplicables. Por ejemplo, el atributo vpcId:*
establece las restricciones
basadas en contexto que se deben aplicar a todas las VPC de la cuenta. También puede especificar a qué grupo de recursos se aplica la política en el mandato.
Creación de reglas utilizando la API
Revise las siguientes solicitudes de ejemplo para crear reglas. Para obtener más información sobre v1/rules
API, consulte la documentación de API.
Después de crear una regla, puede tardar hasta 10 minutos antes de que pueda actualizar dicha regla.
La carga útil de ejemplo siguiente crea una regla que protege las instancias de servidor virtual y permite el acceso sólo desde la zona de red especificada a través de un punto final privado.
{
"contexts": [
{
"attributes": [
{
"name": "endpointType",
"value": "private"
},
{
"name": "networkZoneId",
"value": "45ec64065b7c2bf84b3edec803335111"
}
]
}
],
"resources": [
{
"attributes": [
{
"name": "resourceGroupId",
"value": "1171749e3a8545069d04e6fca1ded18f"
},
{
"name": "serviceName",
"value": "is"
},
{
"name": "instanceId",
"value": "*"
}
]
}
]
}
Creación de reglas mediante la CLI
- Para crear reglas desde la CLI, instale el plugin de CLI CBR.
- Utilice el mandato de
ibmcloud cbr rule-create
para crear reglas CBR. Para obtener más información, consulte la referencia de CLI de CBR.
Los ejemplos de esta sección son las reglas de aplicación. Puede convertirlos en sólo informes añadiendo --enforcement-mode report
.
El siguiente mandato de CLI de ejemplo crea una regla de restricción basada en contexto para todas las instancias de servidor virtual en la cuenta actual:
ibmcloud cbr rule-create --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*"
El siguiente mandato de CLI de ejemplo crea una regla de restricción basada en contexto para un volumen de almacenamiento en bloque específico en la cuenta actual:
ibmcloud cbr rule-create --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for volume" --service-name is --resource-attributes "volumeId=UUID_OF_THE_VOLUME"
El siguiente mandato de CLI de ejemplo crea una regla de restricción basada en contexto para todas las instancias de servidor virtual en la cuenta actual y restringe el acceso a puntos finales privados:
ibmcloud cbr rule-create --context-attributes 'endpointType=private' --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*"
El siguiente mandato de CLI de ejemplo crea una regla de restricción basada en contexto para todas las instancias de servidor virtual del grupo de recursos y restringe el acceso a puntos finales privados:
ibmcloud cbr rule-create --context-attributes 'endpointType=private' --zone-id a7eeb5dd8e6bdce670eba1afce18e37f --description "Test CBR for VSIs" --service-name is --resource-attributes "instanceId=*" --resource-group-id 1171749e3a8545069d04e6fca1ded18f
Creación de reglas en la consola
-
Vaya a Gestionar > Restricciones basadas en contexto en la consola de IBM Cloud®.
-
Seleccione Reglas y haga clic en Crear.
-
Seleccione Servicios de infraestructura de VPC y pulse Siguiente.
-
Alcance de la regla a Todos los recursos o a Recursos específicos. Para obtener más información, consulte Protección de recursos de VPC Infrasturcture Services. Pulse Continuar.
-
Defina los tipos de punto final permitidos.
- Mantenga el conmutador establecido en No para permitir todos los tipos de punto final.
- Establezca el conmutador en Sí para permitir sólo tipos de punto final específicos y, a continuación, elija en la lista.
-
Seleccione una zona o zonas de red que ya haya creado, o cree una nueva zona de red pulsando Crear.
Los contextos definen la ubicación desde la que se puede acceder a los recursos, enlazando de forma efectiva la zona de red con la regla.
-
Haga clic en Añadir para añadir su configuración al resumen. Pulse Siguiente.
-
Asigne un nombre a la regla y seleccione cómo desea aplicarla. A continuación, pulse Crear.
Supervisión de restricciones basadas en contexto en los servicios de infraestructura de VPC
El servicio de restricción basado en contexto genera registros de auditoría cada vez que se aplica una política basada en contexto. Para obtener más información, consulte Supervisión de restricciones basadas en contexto.
Resolución de errores debido a restricciones basadas en contexto
Usuario que obtiene 403 no autorizado
Cuando se deniega una solicitud debido a permisos de acceso inadecuados o la solicitud se origina fuera de la zona de red definida en la regla de restricciones basadas en contexto, la respuesta de error tiene un formato similar a los ejemplos siguientes.
Error 403 no autorizado al utilizar la CLI
Error code: not_authorized and
Error message: the provided token is not authorized
Trace ID: b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
Error 403 no autorizado al utilizar la consola de IBM Cloud
reference_id b266a31c-b359-4ecb-8b81-a27c1b2cdb7b
code not_authorized
message the provided token is not authorized
403 error no autorizado al utilizar la API
"code":"not_authorized",
"message":"the provided token is not authorized to list floating-ips in this account"
"trace":"b266a31c-b359-4ecb-8b81-a27c1b2cdb7b"
Localización de eventos de restricción basados en el contexto
Puede utilizar el valor de Trace ID
o Reference ID
para buscar en su instancia IBM Cloud Logs los eventos generados por el servicio de restricciones basadas en el contexto. La sección requestData.environment
muestra la dirección IP de origen de la llamada y otra información que puede utilizar para verificar por qué se denegó la autorización. Los campos requestData.action
y requestData.resource
se pueden utilizar para
determinar qué recurso subyacente se ha denegado el acceso.
A continuación se muestra un ejemplo de suceso de restricción basado en contexto. Algunos campos se han eliminado para mejorar la legibilidad.
{
"level": "critical",
"action": "context-based-restrictions.policy.eval",
"message": "Context based restriction rendered a deny",
"severity": "critical",
"correlationId": "TXID-b266a31c-b359-4ecb-8b81-a27c1b2cdb7b-df2f912c-80a1-422c-8b17-6092651fea00",
"requestData": {
"action": "is.vpc.vpc.create",
"reqOrder": 0,
"environment": {
"attributes": {
"ipAddress": "192.168.0.1",
"networkType": "public"
}
},
"resource": {
"attributes": {
"accountId": "67db3d7ff3f34220b40e2d81480754c9",
"resource": "NEWRESOURCE",
"vpcId": "NEWRESOURCE",
"resourceGroupId": "d272ce832535498e9142b557ff8638ed",
"region": "au-syd",
"serviceName": "is",
"resourceType": "vpc"
}
},
"subject": {
"attributes": {
"scope": "ibm openid",
"token.account.bss": "67db3d7ff3f34220b40e2d81480754c9",
"id": "IBMid-550009FB7N"
}
}
},
"responseData": {
"decision": "Deny",
"isEnforced": true
}
}
A continuación, puede utilizar el mismo ID de rastreo o ID de referencia para buscar el evento de servicio de infraestructura de VPC específico en su instancia de IBM Cloud Logs.
{
"action": "is.vpc.vpc.create",
"outcome": "failure",
"message": "Virtual Private Cloud: create vpc -failure",
"severity": "critical",
"dataEvent": false,
"logSourceCRN": "crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:",
"saveServiceCopy": true,
"initiator": {
"id": "IBMid-ABCDEFGH",
"typeURI": "service/security/account/user",
"name": "test@ibm.com",
"authnName": "test",
"authnId": "IBMid-ABCDEFGH",
"host": {
"address": "192.168.0.1",
"addressType": "IPv4"
},
"credential": {
"type": "token"
}
},
"target": {
"id": "crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:",
"typeURI": "is.vpc/vpc",
"name": "",
"resourceGroupId": "crn:v1:bluemix:public:resource-controller::a/67db3d7ff3f34220b40e2d81480754c9::resource-group:d272ce832535498e9142b557ff8638ed"
},
"reason": {
"reasonCode": 403,
"reasonType": "Forbidden",
"reasonForFailure": "Your access token is invalid or does not have the necessary permissions to perform this task"
},
"requestData": {
"generation": "2",
"requestId": "b266a31c-b359-4ecb-8b81-a27c1b2cdb7b"
},
"responseData": {
"responseURI": "/v1/vpcs/"
}
}
También puede buscar sucesos utilizando un identificador de recurso. Un ID de recurso es un UUID y es el último identificador de un CRN. Por ejemplo:
crn:v1:bluemix:public:is:au-syd:a/67db3d7ff3f34220b40e2d81480754c9::vpc:<resourceID>
Las solicitudes de suministro de recursos no contienen un ID de recurso.
Si no encuentra un evento de restricción basado en el contexto en IBM Cloud Logs, es posible que el acceso se haya denegado debido a las políticas de acceso de IAM. Para obtener más información, consulte Guía de inicio de VPC IAM.
Impacto del plano de datos VPN de cliente a sitio con restricciones basadas en contexto
Si un usuario habilita un ID de usuario y código de acceso al configurar la autenticación de cliente para una VPN de cliente a sitio y crea
reglas basadas en contexto en recursos de VPC, la conexión de cliente a la VPN se ve afectada por restricciones basadas en contexto. Si la IP remota del cliente VPN no está en la Zona de red, la conexión con el servidor
VPN devuelve un error Auth Failed
.
Después de que el cliente VPN se conecte al servidor VPN, las solicitudes al punto final de VPE o al punto final de servicio en la nube (CSE) se controlan con restricciones basadas en contexto. Además, la IP de origen de las solicitudes es la VPC Direcciones de origen de punto final de servicio en la nube. Asegúrese de que las direcciones de origen CSE de VPC estén en la zona de red CBR; de lo contrario, se denegará la solicitud.
Limitaciones
- Las restricciones basadas en contexto sólo protegen las acciones asociadas con las API de servicios de infraestructura de VPC o el plugin de
is
, a través de la CLI de IBM. También se da soporte a las opciones SDK y Terraform. Las acciones asociadas con las siguientes API de plataforma no están protegidas por restricciones basadas en contexto:- API de lista de instancias de recursos
- API Suprimir recurso de instancia de recurso
- API de búsqueda global
- Las API Attach y Detach de etiquetado global
- Cuando creas una regla, puede tardar hasta 10 minutos en aplicarse.
- Debido a una limitación que se está abordando actualmente, las restricciones basadas en contexto no deben estar en vigor para las API de Secrets Manager si está utilizando el servicio de equilibrador de carga para VPC, ya que da como resultado que no se puedan adjuntar los certificados al escucha asociado con el equilibrador de carga.