Sécurisation du registre de conteneurs d' IBM Cloud s à l'aide de restrictions basées sur le contexte

Les restrictions basées sur le contexte permettent aux titulaires de compte et aux administrateurs de définir et d’appliquer des restrictions d’accès aux ressources d’ IBM Cloud®, en fonction du contexte des demandes d’accès. L'accès aux ressources d' IBM Cloud® Container Registry s peut être contrôlé à l'aide de restrictions basées sur le contexte et de politiques de gestion des identités et des accès (IAM).

Ces restrictions s'associent aux politiques IAM traditionnelles, qui reposent sur l'identité, afin d'offrir 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. Étant donné que l'accès IAM et les restrictions basées sur le contexte contrôlent tous deux l'accès, ces dernières offrent une protection même en cas d'identifiants compromis ou mal gérés. Pour plus d'informations, voir Sécurité multicouche avec restrictions basées sur le contexte.

Un utilisateur doit disposer du rôle Administrateur sur le service Container Registry pour créer, mettre à jour ou supprimer des règles. Un utilisateur doit également disposer du rôle Editeur ou Administrateur pour les restrictions contextuelles permettant de créer, de mettre à jour ou de supprimer des zones réseau. Un utilisateur ayant le rôle Afficheur pour les restrictions contextuelles peut ajouter des zones réseau à une règle.

Tous les événements d'audit du suivi d'activité qui sont générés proviennent des restrictions basées sur le contexte, et non de Container Registry. Pour plus d'informations, voir Contrôle des restrictions contextuelles.

Container Registry est un service intégré avec des restrictions contextuelles. Pour plus d'informations, voir Services intégrés avec des restrictions contextuelles.

Pour savoir comment protéger vos ressources Container Registry avec des restrictions contextuelles, voir le tutoriel Optimisation des restrictions contextuelles pour sécuriser vos ressources.

Comment Container Registry s'intègre aux restrictions contextuelles

Vous pouvez créer des restrictions contextuelles pour les ressources IBM Cloud Container Registry ou pour des API spécifiques. Avec des restrictions contextuelles, vous pouvez protéger des ressources, voir Protection de ressources spécifiques.

Protection de ressources spécifiques

Lorsque vous configurez des restrictions basées sur le contexte, les restrictions s'appliquent à tous les éléments du service sélectionné dans le compte, sauf si vous sélectionnez un sous-ensemble de ressources. Container Registry prend en charge le sous-ensemble de ressources suivant: resource type = namespace et resource id = <your_image_namespace>, où <your_image_namespace> est l'espace de nom de votre image. Pour plus d'informations sur les règles, voir Création de règles.

Par exemple, si votre image est au format uk.icr.io/<my_project>/<my_image>:latest, où <my_project> est le nom de votre projet et <my_image> est le nom de l'image, les types d'attribut sont ceux indiqués dans le tableau suivant.

Exemples de types d'attributs
Type d'attribut Opérateur Valeur
Region string equals London
Resource Type string equals namespace
Resource Name string equals <my_project>

La valeur Nom de ressource est un espace de nom, comme indiqué par la commande ibmcloud cr namespace-list.

Limitations

Les restrictions contextuelles protègent uniquement les actions associées à l'API IBM Cloud Container Registry et à Vulnerability Advisor 4 pour l'API IBM Cloud Container Registry. Les actions associées aux API de plateforme suivantes ne sont pas protégées par des restrictions contextuelles. Reportez-vous à la documentation de l'API pour connaître les identifiants d'action spécifiques.

Création de règles

Définissez des restrictions sur les ressources d' Container Registry s en créant des règles.

Création de règles dans la console d' IBM Cloud

Pour créer des règles dans la console IBM Cloud, voir Création de règles. Lorsque vous êtes invité à sélectionner un service, sélectionnez Container Registry. Vous pouvez protéger toutes les ressources, ou des ressources spécifiques, voir Protection de ressources spécifiques.

Les types d'attribut suivants pour des ressources spécifiques sont disponibles dans la console IBM Cloud:

  • Region
  • Resource Type
  • Resource Name

Création de règles à l'aide de l'interface de ligne de commande (CLI)

  1. Pour créer des règles à partir de l'interface de ligne de commande (CLI), installez le plug-in CLI pour les restrictions contextuelles.
  2. Vous pouvez utiliser Commande ibmcloud cbr rule-create pour créer des règles pour les restrictions contextuelles. Pour plus d'informations, voir Création de règles à l'aide de l'interface de ligne de commande.

L'exemple suivant crée une règle qui cible le service Container Registry et autorise l'accès à votre espace de nom my_namespace uniquement sur le réseau privé dans 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

Création de règles en utilisant l'API

Pour créer des règles dans l'API, voir la documentation sur les API et Création de règles à l'aide de l'API.

Une fois que vous avez créé une règle, la mise à jour de cette règle peut prendre jusqu'à 10 minutes en raison de la mise en cache de la réponse TTL IAM.

Configuration de stratégies basées sur les régions pour les restrictions basées sur le contexte

Pour toutes les régions autres que global, vous pouvez utiliser la zone de région lorsque vous créez une règle. Par exemple, dans l'interface de ligne de commande pour us-south, vous utilisez l'option --region us-south. Toutefois, comme global est une zone géographique et non une région, vous devez omettre l'option --region et ajouter geography=global dans la zone --resource-attributes.

L'exemple suivant illustre la commande dans us-south, où DESCRIPTION correspond à la description, ACCOUNT_ID à votre ID de compte IBM Cloud, NAMESPACE à l'espace de nom et NETWORK_ZONE_ID à l'ID de zone réseau:

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

L'exemple suivant illustre la commande dans global, où DESCRIPTION correspond à la description, ACCOUNT_ID à votre ID de compte IBM Cloud, NAMESPACE à l'espace de nom et NETWORK_ZONE_ID à l'ID de zone réseau:

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