Ce document décrit le processus d'utilisation des restrictions basées sur le contexte pour protéger vos Cloud Databases ressources. Utilisez ce document pour préparer vos ressources en vue des restrictions basées sur le contexte. Cloud Databases n'offre pas de règles de portée au plan de contrôle dans la phase actuelle de mise en œuvre.
Restrictions basées sur le contexte
Les restrictions basées sur le contexte permettent aux propriétaires de comptes et aux administrateurs de définir et d'appliquer des restrictions d'accès aux ressources IBM Cloud® en fonction du contexte des demandes d'accès. L'accès aux Cloud Databases ressources peut être contrôlé à l'aide de restrictions basées sur le contexte et de politiques Identity and Access Management IAM (Identity and Access Management).
Ces restrictions fonctionnent avec des règles IAM classiques, qui reposent sur l'identité, afin de fournir une couche de protection supplémentaire. Contrairement aux politiques IAM, les restrictions basées sur le contexte n'affectent pas d'accès. Elles permettent de vérifier qu'une demande d'accès provient d'un contexte autorisé que vous configurez. Etant donné que l'accès IAM ainsi que les restrictions basées sur le contexte contrôlent l'accès, les restrictions basées sur le contexte offrent une protection même si les données d'identification sont compromises ou mal gérées. Pour plus d'informations, voir Que sont les restrictions basées sur le contexte ?.
Un utilisateur doit disposer du rôle Administrateur sur le Cloud Databases service pour créer, mettre à jour ou supprimer des règles. Un utilisateur doit également avoir le rôle d'éditeur ou d'administrateur sur le service de restrictions contextuelles pour créer, mettre à jour ou supprimer des zones de réseau. Un utilisateur ayant le rôle de visualiseur dans le service de restrictions contextuelles peut ajouter des zones de réseau à une règle.
Tout IBM Cloud Activity Tracker ou événement de journal d'audit généré provient du service de restrictions basées sur le contexte, et non de Cloud Databases. Cloud Databases prend en charge les événements d'audit uniquement pour les interactions des clients avec les appels de points d'extrémité de la plateforme protégés par des restrictions contextuelles. Cloud Databases ne prend pas en charge les événements d'audit lorsque vous activez les règles de restrictions basées sur le contexte sur l'API du plan de contrôle pour vos instances. Pour plus d'informations, voir Surveillance des restrictions basées sur le contexte.
Pour commencer à protéger vos ressources Cloud Databases avec des restrictions basées sur le contexte, consultez le tutoriel sur l'utilisation des restrictions basées sur le contexte pour sécuriser vos ressources.
Comment Cloud Databases s'intègre aux restrictions basées sur le contexte
Vous pouvez créer des restrictions basées sur le contexte pour le service Cloud Databases, des ressources spécifiques et des API spécifiques.
Protéger les ressources Cloud Databases
Vous pouvez créer des règles de restriction basées sur le contexte pour protéger des régions, des groupes de ressources et des instances spécifiques.
- Région
- Protège les ressources Cloud Databases dans une région spécifique. Si vous incluez une région dans votre règle de restriction contextuelle, les ressources des zones réseau que vous associez à la règle ne peuvent interagir avec les ressources
que dans cette région. Si vous utilisez le CLI, vous pouvez spécifier l'option
--regionpour protéger les ressources dans une région spécifique. Si vous utilisez l'interface utilisateur, vous pouvez spécifier la région dans les attributs de la ressource. - Groupes de ressources
- Protège un groupe de ressources spécifique. Si vous incluez un groupe de ressources dans votre règle de restrictions contextuelles, les ressources des zones réseau que vous associez à la règle ne peuvent interagir qu'avec les ressources
de ce groupe de ressources. L'adaptation d'une règle à un groupe de ressources spécifique n'est disponible que pour les règles qui protègent le type d'API de cluster. Si vous utilisez l'interface de programmation, vous pouvez spécifier
l'option
--resource-group-idpour protéger les ressources d'un groupe de ressources spécifique. Si vous utilisez l'interface utilisateur, vous pouvez spécifier le groupe de ressources dans les attributs de la ressource. - Instance
- Protège une instance spécifique. Si vous incluez une instance dans votre règle de restriction basée sur le contexte, les ressources des zones réseau que vous associez à la règle ne peuvent interagir qu'avec les ressources de cette instance.
Le cadrage d'une règle sur une instance spécifique n'est disponible que pour les règles qui protègent le type d'API de cluster. Si vous utilisez le CLI, vous pouvez spécifier l'option
--service-instancepour protéger les instances d'un groupe de ressources spécifique. Si vous utilisez l'interface utilisateur, vous pouvez spécifier l'instance de service dans les attributs de la ressource.
Utilisation de l'interface de ligne de commande (CLI)
Vous pouvez créer et gérer des restrictions basées sur le contexte avec IBM Cloud CLI en installant le plug-in CLI pour les restrictions basées sur le contexte.
Création de zones réseau
Une zone réseau représente une liste d'adresses IP autorisées dans laquelle une demande d'accès est créée. Elle définit un ou plusieurs emplacements réseau qui sont spécifiés par les attributs suivants :
- Des adresses IP (adresses individuelles, plages ou sous-réseaux).
- VPC.
Création de zones réseau dans l'interface utilisateur
-
Allez dans Gérer > Restrictions contextuelles dans la console IBM Cloud®
-
Sélectionnez Zones réseau.
-
Cliquez sur Créer.
-
Donnez un nom à votre zone de réseau et fournissez une description.
-
Entrez vos adresses IP autorisées. Vous pouvez saisir une seule adresse IP, une série d'adresses IP ou un seul CIDR.
Le champ Adresses IP refusées est facultatif et ne doit inclure que les exceptions contenues dans les plages d'adresses IP que vous indiquez dans le champ Adresses IP autorisées.
-
Choisissez vos VPC autorisés, en sélectionnant autant que vous le souhaitez.
-
Référencer un service: Vous pouvez sélectionner Cloud Databases comme service source pour les restrictions basées sur le contexte, mais pas comme service cible. Par exemple, vous pouvez provisionner une instance Cloud Databases en utilisant BYOK à partir de IBM® Key Protect for IBM Cloud® Dans cet exemple, Cloud Databases est la formation source et IBM® Key Protect for IBM Cloud® est la formation cible. Ensuite, vous devez créer une zone réseau avec une référence de service Cloud Databases et créer une règle associée à la zone réseau qui cible IBM® Key Protect for IBM Cloud® Pour ajouter une référence de service Cloud Databases, pour le type de service, les services IAM sont sélectionnés automatiquement. Dans le menu déroulant Service, sélectionnez un service spécifique Cloud Databases Si la zone que vous créez est associée à une règle ciblant Cloud Databases, une référence de service n'est pas autorisée.
Les références de service fonctionnent uniquement de Key Protect service à Cloud Databases.
Créer des zones de réseau dans l'interface de ligne de commande
Pour créer des zones de réseau dans l'interface de gestion, utilisez la commande cbr-zone-create pour ajouter des ressources aux zones de réseau. Pour plus d'informations, voir la référence CLI sur les restrictions basées sur le contexte.
Créez une zone en utilisant une commande telle que
ibmcloud cbr zone-create --addresses=1.1.1.1,5.5.5.5 --name=<NAME>
Création de zones réseau dans Terraform
Pour créer des zones dans Terraform, suivez les instructions de la documentation du fournisseurIBM Cloud Terraform.
Exemple de script Terraform pour créer une zone CBR :
resource "ibm_cbr_zone" "cbr_zone" {
account_id = "12ab34cd56ef78ab90cd12ef34ab56cd"
addresses {
type = "ipAddress"
value = "169.23.56.234"
}
addresses {
type = "ipRange"
value = "169.23.22.0-169.23.22.255"
}
excluded {
type = "ipAddress"
value = "169.23.22.10"
}
excluded {
type = "ipAddress"
value = "169.23.22.11"
}
description = "this is an example of zone"
excluded {
type = "ipAddress"
value = "value"
}
name = "an example of zone"
}
Vous pouvez également utiliser Terraform IBM Modules(TIM)for CBR Zone pour créer une zone pour les restrictions basées sur le contexte ou mettre à jour les adresses dans une zone existante.
Exemple de création d'une zone CBR à l'aide de Terraform IBM Modules(TIM):
module "ibm_cbr" "zone" {
source = "terraform-ibm-modules/cbr/ibm//modules/cbr-zone-module"
version = "X.X.X" # Replace "X.X.X" with a release version to lock into a specific release
name = "zone_for_pg_access"
account_id = "defc0df06b644a9cabc6e44f55b3880s"
zone_description = "Zone created from terraform"
addresses = [{type = "vpc",value = "vpc_crn"}]
}
Mise à jour des zones réseau dans l'interface de gestion
Mettez à jour une zone à l'aide d'une commande telle que
ibmcloud cbr zone-update <ZONE-ID> --addresses=1.2.3.4 --name=<NAME>
La mise à jour nécessite le ZONE-ID, et non le nom de la zone. Utilisez la commande suivante pour dresser la liste de vos zones et récupérer les ZONE-ID pertinents :
ibmcloud cbr zones
La commande zone-update est un écrasement. Incluez tous les champs obligatoires comme si vous créiez la règle à partir de zéro. Si vous omettez des champs obligatoires, la règle remplace les champs manquants par des champs vides,
et la règle peut échouer car certains de ces champs sont obligatoires, qu'ils modifient ou non la règle.
Supprimer des zones de réseau dans l'interface de gestion
Supprimez une zone à l'aide d'une commande telle que
ibmcloud cbr zone-delete <ZONE-ID>
Création de règles
Les règles restreignent l'accès à des ressources de cloud spécifiques en fonction des attributs et des contextes des ressources. Une règle créée peut accepter jusqu'à 2 000 valeurs IP/CIDR pour les points d'extrémité privés et jusqu'à 2 000 valeurs IP/CIDR pour les points d'extrémité publics. Cette limite est spécifique à Cloud Databases Les limites des autres services IBM Cloud® peuvent varier.
Cloud Databases ne prend pas en charge les adresses IPv6. Si une adresse IPv6 est incluse, elle sera ignorée.
Fermeture complète de l'accès aux points d'extrémité non autorisés : Afin de fournir un cadre de sécurité plus solide, nous avons mis en œuvre un changement significatif dans le contrôle d'accès pour les points d'extrémité publics et privés. À l'avenir, l'accès aux points d'extrémité publics et privés qui ne sont pas explicitement inscrits sur la liste d'autorisation sera totalement fermé. Cette restriction garantit que seul l'accès autorisé à vos points d'extrémité est possible, ce qui minimise le risque d'accès non autorisé.
Création de règles à l'aide de l'interface utilisateur
-
Allez dans Gérer > Restrictions contextuelles dans la console IBM Cloud®
-
Sélectionnez Règles.
-
Cliquez sur Créer.
-
Sous Service, sélectionnez le service que vous souhaitez cibler avec votre règle.
-
Sous API, sélectionnez
Data planeActuellement, toute autre sélection entraîne une erreur.0 actions sont attendues pour le type d'API du plan de données.
Cloud Databases ne prend actuellement pas en charge le plan de contrôle en tant qu'option.
-
Sous Ressources, étendez la règle à Toutes les ressources ou Ressources spécifiques. Pour plus d'informations, voir Protéger les ressources Cloud Databases
-
Cliquez sur Continu.
-
Définir les types de terminaux autorisés.
- Laissez la case à cocher sur Non pour autoriser tous les types de terminaux.
- Réglez la case à cocher sur Oui pour n'autoriser que certains types de terminaux, puis choisissez dans la liste.
-
Sélectionnez une ou plusieurs zones réseau que vous avez déjà créées, ou créez une nouvelle zone réseau en cliquant sur Créer.
Les contextes définissent l'endroit où l'on peut accéder à vos ressources, ce qui permet de relier efficacement votre zone réseau à votre règle.
-
Cliquez sur Ajouter pour ajouter votre configuration au résumé.
-
Cliquez sur Suivant.
-
Nommez votre règle.
-
Sélectionnez la manière dont vous souhaitez appliquer la règle.
Le mode « Rapport uniquement » n'est pas disponible pour Cloud Databases.
Créer des règles dans l'interface de programmation
Pour créer une règle dans l'interface de programmation, vous devez disposer des fichiers Cloud Databases service_name appropriés :
databases-for-postgresqldatabases-for-mongodbdatabases-for-redisdatabases-for-elasticsearchdatabase-for-mysqlmessages-for-rabbitmq
Tous les autres paramètres qui suivent sont expliqués dans le guide de référence du plugin CBR.
Exemple de commande pour la création d'une règle CBR :
ibmcloud cbr rule-create --enforcement-mode enabled --context-attributes "networkZoneId=<ZONE-ID>" --resource-group-id <RESOURCE_GROUP_ID> --service-name <SERVICE-NAME> --service-instance <SERVICE-INSTANCE> --api-types crn:v1:bluemix:public:context-based-restrictions::::api-type:data-plane --description <DESCRIPTION>
La seule api-type option actuellement prise en charge par Cloud Databases est le plan de données.
Le mode « Rapport uniquement » n'est pas disponible pour Cloud Databases.
Mise à jour des règles dans l'interface de programmation
Exemple de commande pour la mise à jour d'une règle CBR :
ibmcloud cbr rule-update <RULE-ID> --enforcement-mode disabled --context-attributes="networkZoneId=<ZONE-ID>" --resource-group-id <RESOURCE_GROUP_ID> --service-name <SERVICE_NAME> --api-types crn:v1:bluemix:public:context-based-restrictions::::api-type:data-plane --description <DESCRIPTION>
La commande rule-update est un écrasement. Incluez tous les champs obligatoires comme si vous créiez la règle à partir de zéro. Si vous omettez des champs obligatoires, la règle remplace les champs manquants par des champs vides
et la règle risque d'échouer parce que certains de ces champs sont obligatoires, qu'ils modifient ou non la règle.
La mise à jour nécessite le RULE-ID, et non le nom de la règle. Utilisez la commande suivante pour dresser la liste de vos règles et récupérer les RULE-ID pertinents :
ibmcloud cbr rules
Supprimer des règles dans l'interface de gestion
Supprimez une règle à l'aide d'une commande telle que
ibmcloud cbr rule-delete <RULE-ID>
Utilisez ibmcloud cbr <command> — help pour obtenir la liste complète des options et des paramètres. Par exemple, ibmcloud cbr rule-create — help fournit des paramètres pour la création de règles.
Créer des règles dans Terraform
Pour créer des règles dans Terraform, suivez les instructions de la documentation du fournisseurIBM Cloud Terraform.
Pour créer une règle, vous devez disposer des éléments Cloud Databases service_name appropriés :
databases-for-postgresqldatabases-for-mongodbdatabases-for-redisdatabases-for-elasticsearchdatabase-for-mysqlmessages-for-rabbitmq
Créez une règle à l'aide d'une commande telle que
resource "ibm_cbr_rule" "cbr_rule" {
contexts {
attributes {
name = "networkZoneId"
value = "559052eb8f43302824e7ae490c0281eb"
}
attributes {
name = "endpointType"
value = "private"
}
}
description = "this is an example of a rule with one context one zone"
enforcement_mode = "enabled"
operations {
api_types {
api_type_id = "api_type_id"
}
}
resources {
attributes {
name = "accountId"
value = "12ab34cd56ef78ab90cd12ef34ab56cd"
}
attributes {
name = "serviceName"
value = "network-policy-enabled"
}
tags {
name = "tag_name"
value = "tag_value"
}
}
}
Vérification de la règle
Pour vérifier que votre règle est appliquée, allez dans le tableau de bord IBM Cloud® Et sélectionnez l'instance concernée dans votre liste de ressources. Dans les tâches récentes, vous voyez l'état de votre règle.
La tâche de création ou de modification d'une règle est placée dans la file d'attente de votre instance. En fonction de la charge de travail, l'application des règles peut prendre un certain temps.