Affectation de l'accès à un compartiment individuel

Attribuez des rôles d'accès aux utilisateurs et aux ID de service sur les compartiments, à l'aide de l'interface utilisateur ou de l'interface de ligne de commande, pour créer des règles.

Compartiments
Rôle d'accès Exemples d'actions
Responsable Rendre les objets publics, créer et détruire des compartiments et des objets
Auteur Créer et détruire des compartiments et des objets
Lecteur Répertoriez les compartiments, les objets de liste et les objets de téléchargement.
Lecteur de contenu Répertorier et télécharger des objets
Lecteur d'objet Recevoir par téléchargement des objets
Rédacteur d'objet Transfert d'objets

Octroi d'un accès à un utilisateur

Si l'utilisateur doit pouvoir utiliser la console et peut afficher la liste de tous les compartiments d'une instance, il est possible d'utiliser un rôle d'accès de plateforme personnalisé. Cela leur permet d'afficher uniquement le contenu de compartiments spécifiques. S'il n'est pas approprié pour un utilisateur de lire les noms d'autres compartiments, il est nécessaire de concevoir et d'implémenter un portail personnalisé ou une autre interface utilisateur à l'aide de l'API.

Si l'utilisateur interagit avec les données en utilisant l'API et n'a pas besoin d'accéder à la console, et s'il est membre de votre compte, vous pouvez lui accorder l'accès à un seul godet sans accès à l'instance parente à l'aide des rôles par défaut.

Application des règles

Les règles IAM sont appliquées hiérarchiquement du niveau d'accès le plus élevé vers le niveau d'accès le plus restreint. Les conflits sont résolus en utilisant la règle plus permissive. Par exemple, si un utilisateur possède les rôles d'accès au service Writer et Reader sur un compartiment, la règle accordant le rôle Reader est ignorée.

Cela s'applique également aux règles d'instance de service et de niveau de compartiment.

  • Par exemple, si la règle affectée à un utilisateur lui octroie le rôle d'accès Writer sur une instance de service et le rôle Reader sur un compartiment unique, la règle de niveau compartiment est ignorée.
  • Si la règle affectée à un utilisateur lui octroie le rôle d'accès Reader sur une instance de service et le rôle Writer sur un compartiment unique, les deux règles sont appliquées et le rôle Writer plus permissif est prioritaire pour le compartiment individuel.

S'il est nécessaire de restreindre l'accès à un seul seau (ou ensemble de seaux), assurez-vous que l'utilisateur ou l'identifiant de service n'a pas d'autres politiques au niveau de l'instance en utilisant la console ou le CLI.

Pour en savoir plus, voir Meilleures pratiques pour l'organisation des ressources et l'affectation des accès.

Créer une nouvelle politique pour un utilisateur

Pour créer une règle de niveau compartiment :

  1. Accédez à la console Accès (IAM) à partir du menu Gérer.
  2. Sélectionnez Utilisateurs dans le menu de navigation de gauche.
  3. Sélectionnez un utilisateur.
  4. Sélectionnez l'onglet Règles d'accès pour visualiser les règles existantes de l'utilisateur, affecter une nouvelle règle ou éditer une règle existante.
  5. Cliquez sur Affecter un accès pour créer une nouvelle règle.
  6. Choisissez Affecter l'accès aux ressources.
  7. Sélectionnez d'abord Cloud Object Storage dans le menu des services.
  8. Sélectionnez ensuite l'instance de service appropriée. Entrez bucket dans la zone Type de ressource et le nom du compartiment dans la zone Ressource.
  9. Sélectionnez le rôle d'accès au service souhaité. La sélection du losange avec le nombre d'actions affiche les actions disponibles pour le rôle, comme illustré pour "Lecteur de contenu" dans la figure 1.
  10. Cliquez sur Affecter.

Exemples d'actions pour le rôle de lecteur de contenu
Informations sur le rôle

Notez que si la zone Type de ressource ou Ressource est vide, une règle de niveau instance sera créée.

Création d'une règle pour une commande d'interface de ligne de commande utilisateur

A partir d'un terminal, exécutez la commande suivante :

ibmcloud iam user-policy-create <user-name> \
      --roles <role> \
      --service-name cloud-object-storage \
      --service-instance <resource-instance-id> \
      --resource-type bucket \
      --resource <bucket-name>

Pour répertorier des règles existantes :

ibmcloud iam user-policies <user-name>

Pour éditer une règle existante :

ibmcloud iam user-policy-update <user-name> <policy-id> \
      --roles <role> \
      --service-name cloud-object-storage \
      --service-instance <resource-instance-id> \
      --resource-type bucket \
      --resource <bucket-name>

Octroi d'un accès à un utilisateur

Si vous devez accorder l'accès à un godet à une application ou à une autre entité non humaine, utilisez un identifiant de service. L'ID de service peut être créé spécifiquement pour cette opération ou il peut s'agir d'un ID service existant déjà utilisé.

Créer une nouvelle politique pour un utilisateur

  1. Accédez à la console Accès (IAM) à partir du menu Gérer.
  2. Sélectionnez ID de service dans le menu de navigation de gauche.
  3. Sélectionnez un ID de service pour afficher des règles existantes et affectez une nouvelle règle ou éditez une règle existante.
  4. Sélectionnez l'instance de service, l'ID de service et le rôle souhaité.
  5. Entrez bucket dans la zone Type de ressource et le nom de compartiment dans la zone Ressource.
  6. Cliquez sur Submit.

Notez que si la zone Type de ressource ou Ressource est vide, une règle de niveau instance sera créée.

Créer une nouvelle politique pour un identifiant de service

A partir d'un terminal, exécutez la commande suivante :

ibmcloud iam service-policy-create <service-id-name> \
      --roles <role> \
      --service-name cloud-object-storage \
      --service-instance <resource-instance-id> \
      --resource-type bucket \
      --resource <bucket-name>

Pour répertorier des règles existantes :

ibmcloud iam service-policies <service-id-name>

Pour éditer une règle existante :

ibmcloud iam service-policy-update <service-id-name> <policy-id> \
      --roles <role> \
      --service-name cloud-object-storage \
      --service-instance <resource-instance-id>
      --resource-type bucket \
      --resource <bucket-name>