Protection des ressources Secrets Manager avec des restrictions contextuelles

Après avoir configuré votre instance de service IBM Cloud® Secrets Manager, vous pouvez gérer l'accès à l'aide des restrictions contextuelles(CBR).

Gestion des paramètres CBR

Avec les restrictions basées sur le contexte, vous pouvez définir et appliquer des restrictions d'accès des utilisateurs et des services aux ressources Secrets Manager en fonction de critères spécifiques.

Vous pouvez contrôler les ressources Secrets Manager avec des restrictions contextuelles et des règles IAM (Identity and Access Management). Ces ressources incluent les références VPC (Virtual Private Cloud) et les adresses IP ( Internet Protocol ) qui sont liées à votre instance Secrets Manager.

Ces restrictions s'ajoutent aux politiques IAM traditionnelles, qui sont basées sur l'identité, afin de fournir un niveau 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 avoir le rôle Administrator sur le service Secrets Manager pour créer, mettre à jour ou supprimer des règles. Un utilisateur doit également disposer du rôle Editor ou Administrator sur le service de restrictions contextuelles pour créer, mettre à jour ou supprimer des zones réseau. Un utilisateur ayant le rôle Viewer sur le service de restrictions basées sur le contexte peut ajouter uniquement des zones réseau à une règle.

Tous les événements IBM Cloud Activity Tracker ou de journal d'audit générés proviennent du service de restrictions contextuelles, et non de Secrets Manager. Pour plus d'informations, voir Contrôle des restrictions basées sur le contexte.

Pour commencer à protéger vos ressources Secrets Manager avec des restrictions contextuelles, voir le tutoriel Optimisation des restrictions contextuelles pour sécuriser vos ressources.

Comment Secrets Manager s'intègre aux restrictions contextuelles

Pour restreindre l'accès, vous devez créer des zones et des règles.

Tout d'abord, créez une zone avec les détails appropriés pour les définitions du réseau ou des ressources. Attachez ensuite cette zone à la ressource spécifiée pour en restreindre l'accès. Vous pouvez créer des zones et des règles à l'aide d'une API RESTful ou avec des restrictions contextuelles. Une fois que vous avez créé ou mis à jour une zone ou une règle, l'application de la modification peut prendre quelques minutes.

Les règles CBR ne s'appliquent pas aux processus d'application des accès ou d'annulation d'application des accès.

Limitations

Lorsqu'un utilisateur dispose d'un accès IAM au niveau de l'instance, les règles CBR appliquées à des groupes de secrets spécifiques ne sont pas appliquées. Pour contourner cette limitation, définissez les règles d'accès IAM de l'utilisateur sur des groupes de secrets uniquement.

Les restrictions contextuelles protègent uniquement les actions associées à l'APISecrets Manager. Les actions associées aux API de plateforme suivantes ne sont pas protégées par des restrictions contextuelles. Reportez-vous aux documents d'API pour connaître les ID d'action spécifiques.

Création de zones réseau

En créant des zones réseau, vous pouvez définir une liste autorisée d'emplacements réseau où les demandes d'accès proviennent pour déterminer quand une règle peut être appliquée. La liste des emplacements réseau peut être spécifiée par les attributs suivants:

  • Des adresses IP (adresses individuelles, plages ou sous-réseaux).
  • Clouds privés virtuels
  • Des références de service, qui autorise l'accès à partir d'autres services IBM Cloud.

Veillez à ajouter Secrets Manager aux zones réseau pour les règles qui ciblent d'autres ressources IBM Cloud, sinon certaines opérations de votre flux de travail risquent d'échouer.

Si vous avez créé un serveur virtuel IBM Cloud sur une infrastructure classique dans votre nuage privé virtuel, l'adresse IP privée que vous devez utiliser pour la règle CBR est une IP de passerelle de nuage privé virtuel. N'utilisez pas l'adresse IP interne du serveur virtuel sur l'infrastructure classique. Pour trouver l'adresse IP de la passerelle, sélectionnez l'adresse IP source du point d'extrémité du service IBM Cloud dans votre infrastructure de cloud privé virtuel.

Création de zones de réseau à l'aide de l'API

Vous pouvez créer des zones réseau à l'aide de la commande create-zone. Pour plus d'informations, voir la documentation sur les API. Vous pouvez ajouter Secrets Manager aux zones réseau en tant que référence de service pour permettre à Secrets Manager d'accéder aux ressources et aux services de votre compte qui font l'objet d'une règle.

L'attribut serviceRef de Secrets Manager est secrets-manager.

Vous pouvez déterminer quels services sont disponibles en vérifiant cibles de référence.

Exemple de contenu permettant d'ajouter Secrets Manager à une zone réseau.

{
  "name": "Example zone 1",
  "description": "",
  "addresses": [
    {
      "type": "serviceRef",
      "ref": {
        "service_name": "secrets-manager",
        "account_id": "ACCOUNT-ID"
      }
    }
  ]
}

Exemple de contenu permettant d'ajouter plusieurs services, adresses IP et VPC à une zone réseau.

{
  "name": "zone",
  "description": "",
  "addresses": [
    {
      "type": "ipAddress",
      "value": "192.168.0.0"
    },
    {
      "type": "vpc",
      "value": "crn:v1:bluemix:public:is:us-east:a/CRN"
    },
    {
      "type": "vpc",
      "value": "crn:v1:bluemix:public:is:us-south:a/CRN"
    },
    {
      "type": "serviceRef",
      "ref": {
        "service_name": "cloud-object-storage",
        "account_id": "ACCOUNT-ID"
      }
    },
    {
      "type": "serviceRef",
      "ref": {
        "service_name": "codeengine",
        "account_id": "ACCOUNT-ID"
      }
    },
    {
      "type": "serviceRef",
      "ref": {
        "service_name": "containers-kubernetes",
        "account_id": "ACCOUNT-ID"
      }
    },
    {
      "type": "serviceRef",
      "ref": {
        "service_type": "platform_service",
        "account_id": "ACCOUNT-ID"
      }
    },
    {
      "type": "serviceRef",
      "ref": {
        "service_name": "iam-groups",
        "account_id": "ACCOUNT-ID"
      }
    }
  ],
  "excluded": []
}

Après avoir créé des zones, vous pouvez les mettre à jour ou les supprimer.

Création de zones réseau à l'aide de l'interface utilisateur

Après avoir défini les prérequis et les exigences, vous pouvez créer des zones dans l'interface utilisateur. Pour plus d'informations, voir Création de restrictions contextuelles.

  1. Déterminez les ressources que vous souhaitez ajouter à votre liste autorisée.
  2. Suivez les étapes pour créer des restrictions contextuelles dans la console. Ajoutez le service Secrets Manager à vos zones réseau pour permettre à IBM Cloud® Secrets Manager d'accéder aux services et aux ressources de votre compte.

Après avoir créé des zones, vous pouvez également les mettre à jour ou les supprimer.

Création de zones réseau à l'aide de l'interface de ligne de commande

Vous pouvez utiliser la commande cbr-zone-create pour ajouter des emplacements réseau, des VPC et des références de service à des zones réseau. Pour plus d'informations, voir la référence de l'interface de ligne de commande de CBR. Ajoutez Secrets Manager aux zones réseau en tant que référence de service pour permettre à Secrets Manager d'accéder aux ressources et aux services de votre compte qui font l'objet d'une règle.

  1. Pour créer des zones réseau à partir de l'interface de ligne de commande, installez le plug-in d'interface de ligne de commande CBR.
  2. La commande cbr-zone-create permet d'ajouter des ressources à des zones réseau. Pour plus d'informations, voir la référence de l'interface de ligne de commande de CBR. Notez que service_name pour Secrets Manager est secrets-manager.

Pour obtenir la liste des références de service disponibles, exécutez la ibmcloud cbr service-ref-targets commande .

Exemple de commande permettant d'ajouter le service secrets-manager à une zone réseau.

ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=secrets-manager

Connaissance des règles

Après avoir créé vos zones, vous pouvez les associer à vos ressources réseau en créant des règles. Lorsque vous ajoutez des ressources à une règle, vous pouvez choisir parmi les types de noeud final disponibles qui sont spécifiques à votre topologie de réseau.

Créer des règles en utilisant l'API

Vous pouvez définir des règles avec l'API en utilisant les informations que vous avez collectées lors de la création de zones réseau.

Consultez l'exemple suivant pour apprendre à créer des règles pour Secrets Manager. Pour plus d'informations, voir la documentation sur les API.

L'exemple de contenu suivant crée une règle qui protège le cluster CLUSTER-ID. Seules les ressources de la zone NETWORK-ZONE-ID peuvent accéder au cluster. Etant donné qu'aucun operations n'est spécifié, les ressources de la zone NETWORK-ZONE-ID peuvent accéder aux API cluster et management.

{
  "description": "Example rule 1",
  "resources": [
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "ACCOUNT-ID"
        },
        {
          "name": "serviceName",
          "value": "secrets-manager"
        },
        {
          "name": "serviceInstance",
          "value": "CLUSTER-ID"
        }
      ]
    }
  ],
  "contexts": [
    {
      "attributes": [
        {
          "name": "networkZoneId",
          "value": "NETWORK-ZONE-ID"
        },
        {
          "name": "endpointType",
          "value": "private"
        }
      ]
    }
  ]
}

Après avoir créé des règles, vous pouvez les mettre à jour et les supprimer.

Création de règles à l'aide de l'interface utilisateur

Après avoir défini les prérequis et les exigences, vous pouvez créer des règles dans l'interface utilisateur.

  1. Déterminez les ressources que vous souhaitez ajouter à votre liste autorisée.
  2. Suivez les étapes pour créer des restrictions contextuelles dans la console. Ajoutez le service Secrets Manager à vos zones réseau pour permettre à IBM Cloud® Secrets Manager d'accéder aux services et aux ressources de votre compte.

Après avoir créé des règles, vous pouvez les mettre à jour et les supprimer.

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

Passez en revue les exemples suivants pour apprendre à créer des règles pour Secrets Manager. Pour plus d'informations, voir la référence de l'interface de ligne de commande de CBR.

  1. Pour créer des règles à partir de l'interface de ligne de commande, installez le plug-in d'interface de ligne de commande CBR.
  2. Vous pouvez utiliser la ibmcloud cbr rule-create commande pour créer des règles CBR. Pour plus d'informations, voir la référence de l'interface de ligne de commande de CBR. Notez que service_name pour Secrets Manager est secrets-manager. Pour trouver une liste de noms de service, exécutez la commande ibmcloud cbr service-ref-targets. Pour trouver la liste des types d'API d'un service, exécutez la commande ibmcloud cbr api-types --service-name SERVICE.

Exemple de commande permettant de créer une règle qui utilise la clé addresses, le type d'API cluster et le type ipAddress.

ibmcloud cbr rule-create my-rule-1 --service-name secrets-manager --api-type crn:v1:bluemix:public:secrets-manager::::api-type:cluster --zone-id ZONE-ID

La commande suivante crée une règle qui protège le cluster CLUSTER-ID. Seules les ressources de la zone réseau NETWORK-ZONE-ID peuvent accéder au cluster. Cette règle inclut les types d'API cluster et management.

ibmcloud cbr rule-create my-rule-2 --service-name secrets-manager --service-instance CLUSTER-ID --zone-id NETWORK-ZONE-ID

Etapes suivantes

La création ou la modification de zones ou de règles doit être suivie de tests adéquats pour garantir l'accès et la disponibilité.

Les utilisateurs qui tentent d'accéder à vos ressources en dehors des zones définies reçoivent HTTP error 401 lorsque les règles appropriées ne sont pas établies.