Protección del registro de contenedores de IBM Cloud mediante restricciones basadas en el contexto
Las restricciones basadas en el contexto permiten a los titulares de cuentas y a los administradores definir y aplicar restricciones de acceso a los recursos de IBM Cloud® en función del contexto de las solicitudes de acceso. El acceso a los recursos de IBM Cloud® Container Registry se puede controlar mediante restricciones basadas en el contexto y políticas de gestión de identidades y accesos (IAM).
Estas restricciones se combinan con las políticas tradicionales de IAM, que se basan en la identidad, para proporcionar otra capa de protección. 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. Dado que tanto el acceso mediante IAM como las restricciones basadas en el contexto controlan el acceso, estas últimas ofrecen protección incluso en caso de que las credenciales se vean comprometidas o se gestionen de forma inadecuada. Consulte Seguridad por niveles con restricciones basadas en el contexto para obtener más información.
Un usuario debe tener el rol de administrador en el servicio Container Registry para crear, actualizar o eliminar reglas. Un usuario también debe tener el rol de Editor o Administrador para las restricciones basadas en contexto para crear, actualizar o suprimir zonas de red. Un usuario con el rol de Visor para las restricciones basadas en contexto puede añadir zonas de red a una regla.
Cualquier evento de auditoría del rastreador de actividad que se genere proviene de las restricciones basadas en el contexto, no de Container Registry. Para obtener más información, consulte Supervisión de restricciones basadas en contexto.
Container Registry es un servicio que se integra con restricciones basadas en contexto. Para obtener más información, consulte Servicios integrados con restricciones basadas en contexto.
Para obtener información sobre cómo proteger los recursos de Container Registry con restricciones basadas en contexto, consulte la guía de aprendizaje Cómo aprovechar las restricciones basadas en contexto para proteger los recursos.
Cómo se integra Container Registry con restricciones basadas en contexto
Puede crear restricciones basadas en contexto para recursos IBM Cloud Container Registry o para API específicas. Con restricciones basadas en contexto, puede proteger los recursos, consulte Protección de recursos específicos.
Protección de recursos específicos
Al configurar restricciones basadas en contexto, las restricciones se aplican a todo para el servicio seleccionado en la cuenta a menos que seleccione un subconjunto de recursos. Container Registry da soporte al siguiente subconjunto de recursos:
resource type = namespace y resource id = <your_image_namespace>, donde <your_image_namespace> es el espacio de nombres de la imagen. Para obtener más información sobre las reglas, consulte
Creación de reglas.
Por ejemplo, si la imagen tiene el formato uk.icr.io/<my_project>/<my_image>:latest, donde <my_project> es el nombre del proyecto y <my_image> es el nombre de la imagen, los tipos
de atributo son los que se muestran en la tabla siguiente.
| Tipo de atributo | Operador | Valor |
|---|---|---|
Region |
string equals |
London |
Resource Type |
string equals |
namespace |
Resource Name |
string equals |
<my_project> |
El valor Nombre de recurso es un espacio de nombres, tal como se muestra en el mandato ibmcloud cr namespace-list.
Limitaciones
Las restricciones basadas en contexto protegen sólo las acciones que están asociadas con la API deIBM Cloud Container Registry y la API deVulnerability Advisor 4 para IBM Cloud Container Registry. Las acciones asociadas con las siguientes API de plataforma no están protegidas por restricciones basadas en contexto. Consulte la documentación de la API para conocer los ID de acción específicos.
Creación de reglas
Define las restricciones de los recursos de Container Registry creando reglas.
Creación de reglas en la consola de IBM Cloud
Para crear reglas en la consola de IBM Cloud, consulte Creación de reglas. Cuando se le solicite que seleccione un servicio, seleccione Container Registry. Puede proteger todos los recursos, o recursos específicos, consulte Protección de recursos específicos.
Los siguientes tipos de atributo para recursos específicos están disponibles en la consola de IBM Cloud:
RegionResource TypeResource Name
Creación de reglas mediante la CLI
- Para crear reglas desde la interfaz de comando (CLI), instale el complemento CLI de restricciones basadas en contexto.
- Puede utilizar Mandato
ibmcloud cbr rule-createpara crear reglas para restricciones basadas en contexto. Para obtener más información, consulte Creación de reglas utilizando la CLI.
El ejemplo siguiente crea una regla que tiene como destino el servicio Container Registry y permite el acceso al espacio de nombres my_namespace sólo a través de la red privada en us-south.
ibmcloud cbr rule-create --description 'Only allow access to my_namespace over the private network' --service-name container-registry --context-attributes endpointType=private --resource-attributes resourceType=namespace,resource=my_namespace --region us-south
Creación de reglas utilizando la API
Para crear reglas en la API, consulte los documentos de la API y Creación de reglas utilizando la API.
Después de crear una regla, puede tardar hasta 10 minutos en actualizar dicha regla debido al almacenamiento en memoria caché de respuesta TTL de IAM.
Configuración de políticas basadas en regiones para restricciones basadas en contexto
Para todas las regiones que no sean global, puede utilizar el campo de región al crear una regla. Por ejemplo, en la CLI para us-south, utilice la opción --region us-south. Sin embargo, puesto que global es una geografía y no una región, debe omitir la opción --region y añadir geography=global en el campo --resource-attributes.
El ejemplo siguiente muestra el mandato en us-south, donde DESCRIPTION es la descripción, ACCOUNT_ID es el ID de cuenta de IBM Cloud, NAMESPACE es el espacio de nombres y NETWORK_ZONE_ID es el ID de zona de red:
ibmcloud cbr rule-create --description "DESCRIPTION" --resource-attributes "accountId=ACCOUNT_ID,serviceName=container-registry,resourceType=namespace,resource=NAMESPACE" --context-attributes networkZoneId=NETWORK_ZONE_ID --output json --region us-south
El ejemplo siguiente muestra el mandato en global, donde DESCRIPTION es la descripción, ACCOUNT_ID es el ID de cuenta de IBM Cloud, NAMESPACE es el espacio de nombres y NETWORK_ZONE_ID es el ID de zona de red:
ibmcloud cbr rule-create --description "DESCRIPTION" --resource-attributes "accountId=ACCOUNT_ID,serviceName=container-registry,resourceType=namespace,resource=NAMESPACE,geography=global" --context-attributes networkZoneId=NETWORK_ZONE_ID