Profils de confiance pour les utilisateurs et les charges de travail fédérés

Accorder l'accès sans gérer les informations d'identification. Utiliser des profils de confiance pour les utilisateurs fédérés avec des attributs SAML ou des identités de charge de travail dans les ressources informatiques.

Vous pouvez utiliser des profils de confiance pour accorder à différentes identités IBM Cloud® l'accès aux ressources de votre compte. Accordez automatiquement aux utilisateurs fédérés l'accès à votre compte avec des conditions basées sur les attributs SAML de votre annuaire d'entreprise. Vous pouvez également utiliser des profils de confiance pour mettre en place une autorisation fine pour les applications qui s'exécutent dans les ressources informatiques. De cette façon, vous n'êtes pas obligé de créer des ID de service ou des clés d'API pour les ressources de calcul. Vous pouvez également établir une relation de confiance avec les services IBM Cloud ou les identifiants de service d'un autre compte afin de permettre un accès croisé.

Un utilisateur n'a pas besoin d'être membre du compte pour assumer un profil de confiance. Un utilisateur peut utiliser le profil si son fournisseur d'identité ( IdP ) correspond à un IdP utilisé dans les conditions de confiance.

Lorsque vous créez un profil de confiance, vous pouvez établir des conditions de confiance avec les types d'entités suivants : utilisateurs fédérés, ressources informatiques, identifiants de service ou services IBM Cloud. Après avoir créé le profil de confiance, vous pouvez ajouter d'autres conditions pour combiner plusieurs types d'entités dans le même profil.

Vous pouvez utiliser Activity Tracker pour surveiller les ressources de calcul, les ID de service et les services IBM Cloud des utilisateurs fédérés qui appliquent un profil de confiance. Pour plus d'informations, voir Surveillance des sessions de connexion des profils sécurisés.

Avant de commencer

Si vous disposez de l'accès suivant, vous pouvez créer des profils sécurisés :

  • Propriétaire de compte
  • Rôle d'administrateur sur tous les services de gestion des comptes
  • Rôle d'administrateur sur le service d'identité IAM. Pour plus d'informations, voir Service d'identité IAM.

Établir la confiance avec les utilisateurs fédérés dans la console

Pour désigner les utilisateurs fédérés pouvant avoir accès à des ressources spécifiques, suivez la procédure ci-après :

  1. Activez l'authentification à partir d'un fournisseur d'identité externe.

  2. Dans la console IBM Cloud, cliquez sur Gérer > Accès (IAM), puis sélectionnez Profils sécurisés.

  3. Cliquez sur Créer.

  4. Décrivez votre profil en indiquant un nom, un courriel et une description, puis cliquez sur Continuer.

    Dans l'e-mail, vous pouvez ajouter un identifiant personnel ou une liste de distribution.

    Dans la description, spécifiez une liste d'actions disponibles pour ce profil sécurisé.

  5. Vous pouvez créer le profil de confiance avant d'ajouter des détails en sélectionnant Décider plus tard. Ou bien, établissez la confiance en suivant les étapes suivantes :

    1. Sélectionnez Utilisateurs fédérés en tant que type d'entité de confiance dans la liste.

    2. Sélectionnez Utilisateurs fédérés par IBMid ou **Utilisateurs fédérés par IBM Cloud App ID comme méthode d'authentification et entrez le fournisseur d'identité par défaut (**IdP ) que vous avez activé à l'étape 1.

      Si les utilisateurs pour lesquels vous créez un profil sécurisé utilisent IBM Cloud App ID, créez le profil sécurisé en tant qu'utilisateur App ID, et de même pour IBMid. De cette façon, vos propres attributs SAML peuvent vous donner une idée de la structure des conditions de profil de confiance. Les autres utilisateurs ayant le même IdP peuvent avoir des attributs SAML différents. Utilisez vos propres attributs uniquement comme suggestion. Pour utiliser des attributs dans une allégation différente de la vôtre, vous pouvez les saisir manuellement. {: tip}

      1. Sélectionnez Utilisateurs fédérés par IBMid, Utilisateurs fédérés par IBM Cloud App ID, ou **Utilisateurs fédérés par IBM Cloud SAML comme méthode d'authentification et entrez le fournisseur d'identité par défaut (**IdP ) que vous avez activé à l'étape 1.
    3. Ajoutez des conditions basées sur vos données de fournisseur d'identité pour indiquer comment et quand les utilisateurs fédérés peuvent appliquer le profil.

      • Pour définir plusieurs conditions, cliquez sur Ajouter une condition. Les utilisateurs fédérés doivent satisfaire toutes les conditions pour être inclus dans le profil sécurisé. Pour plus d'informations sur les zones utilisées pour créer les conditions, consultez les propriétés de condition IAM.
      • Cliquez sur Afficher les données du fournisseur d'identité (IdP) pour rechercher les noms et les valeurs d'attributs dans vos données personnelles de votre fournisseur d'identité. Pour plus d'informations, voir Utilisation des données du fournisseur d'identité pour générer des profils sécurisés.
    4. Définissez la durée de session pendant laquelle un utilisateur peut appliquer le profil avant de devoir s'authentifier à nouveau.

  6. Cliquez sur Continu.

  7. (Facultatif) Attribuer un accès au profil de confiance.

  8. Ou bien, cliquez sur Créer sans attribuer d'accès.

Pour plus d'informations sur les zones utilisées pour créer les conditions des profils sécurisés, voir Propriétés de condition IAM.

Établir la confiance avec les ressources informatiques dans la console

Pour mieux contrôler l'octroi d'un accès aux ressources de calcul, suivez la procédure ci-après.

IBM Cloud Kubernetes Service ne prend en charge que les profils sécurisés pour les versions 1.21 et ultérieures. Les clusters IBM Cloud Kubernetes Service gratuits sont créés uniquement avec des versions antérieures. La possibilité de créer des clusters avec une version antérieure vous étant offerte dans le cadre du plan standard, veillez à sélectionner la version 1.21 ou ultérieure.

  1. Dans la console IBM Cloud, cliquez sur Gérer > Accès (IAM), puis sélectionnez Profils sécurisés.

  2. Cliquez sur Créer un profil.

  3. Décrivez votre profil en indiquant son nom et sa description, puis cliquez sur Continuer.

  4. Vous pouvez créer le profil de confiance avant d'ajouter des détails en sélectionnant Décider plus tard. Ou bien, établissez la confiance en suivant les étapes suivantes :

    1. Sélectionnez Ressources de calcul, ainsi que leur type dans la liste.

    2. Si vous sélectionnez l'option Toutes les ressources de service, vous pouvez définir plusieurs conditions pour filtrer les ressources en fonction du type de ressource de calcul sélectionné en cliquant sur Ajouter une condition. Ces conditions sont basées sur des attributs, tels que des groupes de ressources ou un emplacement, et s'appliquent à toutes les ressources existantes et futures. Les ressources doivent satisfaire toutes les conditions pour être incluses dans le profil sécurisé.

      Il n'est pas nécessaire que l'espace de noms Kubernetes et le compte de service indiqués existent déjà. Tous les futurs espaces de noms ou comptes de service portant ces noms pourront établir une relation de confiance. Pour répertorier les espaces de noms existants, connectez-vous au cluster et exécutez la commande kubectl get ns. Pour répertorier les comptes de service existants, connectez-vous à votre cluster et exécutez kubectl get sa -n <namespace>. Vous pouvez également entrer default pour les deux.

    3. Si vous sélectionnez Ressources spécifiques, vous pouvez établir la confiance avec une ou plusieurs instances de ressources de calcul existantes directement sans conditions. Par exemple, un cluster Kubernetes.

  5. Cliquez sur Continu.

  6. (Facultatif) Attribuer un accès au profil de confiance.

  7. Ou bien, cliquez sur Créer sans attribuer d'accès.

Pour plus d'informations sur les zones utilisées pour créer les conditions des profils sécurisés, voir Propriétés de condition IAM.

Établir la confiance avec les services IBM Cloud dans la console

Un service IBM Cloud de votre compte ou d'un autre compte peut avoir besoin d'un jeton pour exécuter une opération dans votre compte.

Exemple 1
Une instance de service de projet dans un autre compte peut assumer un profil de confiance pour déployer en toute sécurité une architecture dans votre compte sans qu'il soit nécessaire de procéder à une rotation des clés. Pour plus d'informations, voir Utilisation de profils de confiance pour autoriser un projet à déployer une architecture.
Exemple 2
Un catalogue privé est une instance du service Catalog Management identifiée par un CRN. Vous pourriez vouloir valider les produits de votre catalogue privé dans un compte distinct de celui qui contient votre catalogue. Vous pouvez donner à un catalogue privé l'accès à la création de ressources pour la validation dans un compte cible en créant un profil de confiance dans le compte cible. Ensuite, vous établissez la confiance avec le catalogue en utilisant le CRN du catalogue pour lier l'instance de service au profil de confiance. Pour plus d'informations, voir Onboarding software to your private catalog.

Le partage des ressources entre les comptes à l'aide de profils de confiance fonctionne pour un ensemble limité de services et ne constitue pas une méthode générale d'accès aux services entre les comptes.

Effectuez les étapes suivantes pour définir comment un service IBM Cloud peut accéder à des ressources spécifiques de votre compte :

  1. Demandez à l'administrateur du service le nom de la ressource en nuage (CRN) qui identifie de manière unique l'instance du service. Le CRN est utilisé pour autoriser des opérations.

    L'administrateur du service peut trouver le CRN en allant dans l'icône Menu de Navigation icône Menu de Navigation > Liste des ressources et en cliquant sur le nom du service que vous ciblez. Dans la section Détails, copiez le CRN. Pour un catalogue privé CRN, allez dans Gérer > Catalogues > Catalogues privés et sélectionnez le catalogue privé. Cliquez sur Actions... > Modifier les détails du catalogue pour trouver le CRN du catalogue.

  2. Dans la console IBM Cloud, cliquez sur Gérer > Accès (IAM), puis sélectionnez Profils sécurisés.

  3. Cliquez sur Créer un profil.

  4. Définissez votre profil en indiquant un nom et une description, puis cliquez sur Continuer.

    Dans la description, fournissez une liste des actions disponibles pour le profil de confiance.

  5. Vous pouvez créer le profil de confiance avant d'ajouter des détails en sélectionnant Décider plus tard. Ou bien, établissez la confiance en suivant les étapes suivantes :

    1. Sélectionnez IBM Cloud® services.
    2. Saisissez le CRN que l'administrateur du service vous a fourni.

    IBM Cloud sont des identités statiques qui n'utilisent pas de conditions pour établir la confiance. Au lieu de cela, vous établissez la confiance en utilisant le CRN pour créer un lien direct avec l'entité de confiance.

  6. Cliquez sur Continu.

  7. (Facultatif) Attribuer un accès au profil de confiance.

  8. Ou bien, cliquez sur Créer sans attribuer d'accès.

Établir la confiance avec les identifiants de service dans la console

Vous pouvez utiliser des profils de confiance pour donner à un identifiant de service un accès inter-comptes et un accès aux services d'infrastructure classiques. Pour donner à un identifiant de service d'un compte l'accès à un compte cible, créez le profil de confiance dans le compte cible. Suivez les étapes suivantes pour définir comment un identifiant de service peut accéder à des ressources spécifiques de votre compte :

  1. Demandez à un administrateur de l'autre compte la valeur de l'ID de service qui identifie l'ID de service.

    Un administrateur peut trouver la valeur de l'identifiant de service en allant dans Gérer > Accès (IAM ) > Identifiants de service, et en sélectionnant l'identifiant de service que vous souhaitez cibler. Cliquez sur Détails et copiez l'ID qui commence par ServiceId.

  2. Dans la console IBM Cloud, cliquez sur Gérer > Accès (IAM), puis sélectionnez Profils sécurisés.

  3. Cliquez sur Créer un profil.

  4. Définissez votre profil en indiquant un nom et une description, puis cliquez sur Continuer.

    Dans la description, fournissez une liste des actions disponibles pour ce profil de confiance.

  5. Vous pouvez créer le profil de confiance avant d'ajouter des détails en sélectionnant Décider plus tard. Ou bien, établissez la confiance en suivant les étapes suivantes :

    1. Sélectionner les identifiants de service
    2. Saisissez la valeur de l'ID de service que l'administrateur vous a fournie.
  6. Cliquez sur Continu.

  7. (Facultatif) Attribuer un accès au profil de confiance.

  8. Ou bien, cliquez sur Créer sans attribuer d'accès.

Les identifiants de service sont des identités statiques qui n'utilisent pas de conditions pour établir la confiance. Au lieu de cela, vous établissez la confiance en utilisant la valeur de l'ID des métadonnées de l'ID de service pour créer un lien direct avec l'entité de confiance.

Attribution d'un accès au profil de confiance

Après avoir établi la confiance avec les utilisateurs fédérés, les ressources informatiques, un service IBM Cloud ou un identifiant de service, vous pouvez attribuer l'accès.

Vous ne pouvez attribuer un accès à l'infrastructure classique que si votre compte est lié à un compte Softlayer.

  1. Attribuer un accès.
    • Affectez l'accès au profil sécurisé en l'ajoutant à un ou plusieurs groupes d'accès. Ainsi, vous pouvez utiliser les règles qui existent dans les groupes d'accès que vous avez créés.
      1. Sélectionnez Groupes d'accès et sélectionnez tous les groupes auxquels vous souhaitez ajouter le profil de confiance. Vous ne pouvez affecter des utilisateurs qu'aux groupes d'accès que vous êtes autorisé à gérer.
      2. Cliquez sur Ajouter.
    • Affectez un accès au profil sécurisé avec une règle d'accès.
      1. Sélectionnez Règles d'accès. En fonction de votre niveau d'accès, vous pouvez affecter des règles IAM et des droits d'infrastructure classique.
      2. Sélectionnez un seul service ou un groupe de services, comme Tous les services d'identité et d'accès, Tous les services de gestion des comptes ou Tous les services de gestion des comptes IAM. Cliquez ensuite sur Suivant.
      3. Étendre l'accès à toutes les ressources ou à des ressources spécifiques en fonction des attributs sélectionnés. Ensuite, cliquez sur Suivant.
      4. Sélectionnez une combinaison de rôles et de droits pour définir la portée de l'accès, puis cliquez sur Réviser.
      5. Cliquez sur Ajouter pour ajouter votre configuration de règles à votre récapitulatif.
      6. Vous pouvez affecter un accès à l'infrastructure classique en sélectionnant un utilisateur, un périphérique ou un service, puis une combinaison de droits granulaires.
  2. Cliquez sur Créer.

Personnaliser l'expérience de la console

En tant qu'administrateur de profil de confiance, vous pouvez personnaliser les éléments de navigation qui apparaissent dans la bannière de la console IBM Cloud pour les utilisateurs qui appliquent un profil de confiance. Cette fonctionnalité permet de rationaliser l'utilisation de la console en masquant les éléments de navigation auxquels les utilisateurs n'ont pas besoin d'accéder et en empêchant les utilisateurs d'explorer les zones pour lesquelles ils n'ont pas d'autorisation.

Pour personnaliser la navigation dans la console pour un profil de confiance, procédez comme suit :

  1. Dans la console IBM Cloud, cliquez sur Gérer > Accès (IAM), puis sur Profils de confiance.
  2. Sélectionnez le profil de confiance que vous souhaitez personnaliser, puis cliquez sur Expérience de la console.
  3. Sélectionnez la page de destination que vous souhaitez utiliser comme page de destination par défaut, puis cliquez sur Enregistrer.
  4. Sélectionnez les éléments de navigation que vous souhaitez inclure dans la bannière de la console.
  5. Sélectionnez les catalogues privés dans lesquels le profil de confiance peut accéder à des produits spécifiques, puis cliquez sur Enregistrer.

Instauration de relations de confiance avec des utilisateurs fédérés via l'interface de ligne de commande

Pour désigner les utilisateurs fédérés pouvant avoir accès à des ressources spécifiques, suivez la procédure ci-après :

  1. Activez l'authentification à partir d'un fournisseur d'identité externe.

  2. Créez un profil sécurisé en exécutant la commande suivante :

    ibmcloud iam trusted-profile-create my-profile -d "sample trusted profile"
    

    Pour plus d'informations, voir la référence CLI.

  3. Afin de créer des conditions pour votre profil sécurisé, exécutez la commande ibmcloud iam trusted-profile-rule-create :

    ibmcloud iam trusted-profile-rule-create my-profile --name my-rule --type Profile-SAML --conditions claim:cn,operator:EQUALS,value:my_user --realm-name https://w3id.sso.ibm.com/auth/sps/samlidp2/saml20 --expiration 1200
    

    Pour plus d'informations, voir la référence CLI.

  4. Créez une règle d'accès avec le rôle Viewer pour toutes les ressources du compte en exécutant la commande suivante :

    ibmcloud iam trusted-profile-policy-create --roles Viewer
    

    Pour plus d'informations, voir la référence CLI.

Instauration de relations de confiance avec des ressources de calcul via l'interface de ligne de commande

Pour mieux contrôler l'octroi d'un accès aux ressources de calcul, suivez la procédure ci-après.

IBM Cloud Kubernetes Service ne prend en charge que les profils sécurisés pour les versions 1.21 et ultérieures. Les clusters IBM Cloud Kubernetes Service gratuits sont créés uniquement avec des versions antérieures. La possibilité de créer des clusters avec une version antérieure vous étant offerte dans le cadre du plan standard, veillez à sélectionner la version 1.21 ou ultérieure.

  1. Créez un profil sécurisé en exécutant la commande suivante :

    ibmcloud iam trusted-profile-create sample-compute-profile -d "sample trusted profile for compute resources"
    

    Pour plus d'informations, voir la référence CLI.

  2. Créez des conditions pour votre profil sécurisé en exécutant la commande ibmcloud iam trusted-profile-rule-create :

    ibmcloud iam trusted-profile-rule-create sample-compute-profile --name cr-rule --type Profile-CR --conditions claim:namespace,operator:EQUALS,value:default --conditions claim:crn,operator:EQUALS,value:crn:test:bluemix:public:containers-kubernetes:us-south:a/test:: --cr-type IKS_SA
    

    Pour plus d'informations, voir la référence CLI.

    Vous pouvez également créer un lien direct :

    ibmcloud iam trusted-profile-link-create sample-compute-profile --name my_link --cr-type IKS_SA --link-name default  --link-namespace default --link-crn my_compute_resource_crn
    

    Pour plus d'informations, voir la référence CLI.

  3. Créez une règle d'accès en exécutant la commande suivante :

    ibmcloud iam trusted-profile-policy-create --roles Viewer
    

    Pour plus d'informations, voir la référence CLI.

Établir la confiance avec les services IBM Cloud en utilisant le CLI

Un service IBM Cloud dans un autre compte peut avoir besoin d'un jeton pour exécuter une opération dans votre compte. Effectuez les étapes suivantes pour définir comment un service IBM Cloud peut accéder à des ressources spécifiques de votre compte :

  1. Demandez à l'administrateur du service dans un autre compte le CRN qui identifie de manière unique l'instance de service. Le CRN est utilisé pour autoriser des opérations.

    L'administrateur du service peut trouver le CRN en allant dans l'icône Menu de Navigation icône Menu de Navigation > Liste des ressources et en cliquant sur le service que vous ciblez. Dans la section Détails, copiez le CRN.

  2. Créez une relation de confiance avec un lien direct :

    ibmcloud iam trusted-profile-link-create sample-cloudservice-profile --name my_cloudservice_link --link-crn `crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource`
    

    Pour plus d'informations, voir la référence CLI.

  3. Créez une règle d'accès en exécutant la commande suivante :

    ibmcloud iam trusted-profile-policy-create --roles Viewer
    

    Pour plus d'informations, voir la référence CLI.

Établir la confiance avec les identifiants de service à l'aide de la CLI

Suivez les étapes suivantes pour définir comment un identifiant de service peut accéder à des ressources spécifiques de votre compte :

Vous pouvez utiliser des profils de confiance pour donner à un identifiant de service un accès inter-comptes et un accès pour appeler les services de l'infrastructure classique.

  1. Demandez à un administrateur de l'autre compte la valeur de l'ID de service qui identifie l'ID de service.

    Un administrateur peut trouver la valeur de l'identifiant de service en allant dans Gérer > Accès (IAM ) > Identifiants de service et en sélectionnant l'identifiant de service que vous souhaitez cibler. Cliquez sur Détails et copiez l'ID qui commence par ServiceId.

  2. Créez une relation de confiance avec un lien direct :

    ibmcloud iam trusted-profile-link-create sample-serviceid-profile --name my_serviceid_link --link-crn `crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource`
    

    Pour plus d'informations, voir la référence CLI.

  3. Créez une règle d'accès en exécutant la commande suivante :

    ibmcloud iam trusted-profile-policy-create --roles Viewer
    

    Pour plus d'informations, voir la référence CLI.

Attribution d'un accès au profil de confiance à l'aide de la CLI

Après avoir établi la confiance avec les utilisateurs fédérés, les ressources informatiques, un service IBM Cloud ou un identifiant de service, vous pouvez attribuer l'accès.

Vous ne pouvez attribuer un accès à l'infrastructure classique que si votre compte est lié à un compte Softlayer.

Utilisez la commande trusted-profile-policy-create pour attribuer une politique d'accès au profil de confiance. L'exemple suivant attribue une stratégie avec le rôle d'administrateur à tous les services de gestion des comptes:

ibmcloud iam trusted-profile-policy-create Profile-36f5c562-1t36-4442-b7f0-2663c85386f1 --roles Administrator --attributes serviceType=service

Instauration de relations de confiance avec des utilisateurs fédérés à l'aide de l'API

Pour désigner les utilisateurs fédérés pouvant avoir accès à des ressources spécifiques, suivez la procédure ci-après :

  1. Activez l'authentification à partir d'un fournisseur d'identité externe.

  2. Créez un profil sécurisé en spécifiant votre ID de compte.

    curl -X POST 'https://iam.cloud.ibm.com/v1/profiles' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
    "name": "My Nice Profile",
    "description": "My Nice Profile - desc",
    "account_id": "ACCOUNT_ID"
    }'
    

    Dans la description, spécifiez une liste d'actions disponibles pour ce profil sécurisé.

  3. Créez des conditions pour votre profil sécurisé. Pour des utilisateurs fédérés, affectez à l'attribut type la valeur Profile-SAML. realm-name correspond à l'URL du fournisseur d'identité. Pour plus d'informations, voir API IAM Identity Services.

    curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/rules' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
    "type": "Profile-SAML",
    "realm_name": "https://www.example.org/my-nice-idp",
    "expiration": 43200,
    "conditions": [
    {
    "claim": "groups",
    "operator": "EQUALS",
    "value": "\"cloud-docs-dev\""
       }
       ]
    }'
    

    Le nombre de règles de réclamation est limité à 20 par profil sécurisé.

  4. (Facultatif) Attribuer un accès au profil de confiance.

Établir la confiance avec les ressources informatiques grâce à l'API

Pour mieux contrôler l'octroi d'un accès aux ressources de calcul, suivez la procédure ci-après.

IBM Cloud Kubernetes Service ne prend en charge que les profils sécurisés pour les versions 1.21 et ultérieures. Les clusters IBM Cloud Kubernetes Service gratuits sont créés uniquement avec des versions antérieures. La possibilité de créer des clusters avec une version antérieure vous étant offerte dans le cadre du plan standard, veillez à sélectionner la version 1.21 ou ultérieure.

  1. Créez un profil sécurisé en spécifiant votre ID de compte.

    curl -X POST 'https://iam.cloud.ibm.com/v1/profiles' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
    "name": "My Nice Profile",
    "description": "My Nice Profile - desc",
    "account_id": "ACCOUNT_ID"
    }'
    

    Dans la description, spécifiez une liste d'actions disponibles pour ce profil sécurisé.

  2. Pour votre profil sécurisé, créez une règle de réclamation qui suit le principe du moindre privilège en spécifiant des conditions qui ciblent uniquement les ressources auxquelles vous devez accéder. Ces conditions s'appliquent à toutes les ressources futures existantes. Vous pouvez également créer un lien direct avec des ressources existantes spécifiques.

    Créer des conditions
    Pour les ressources de calcul, définissez l'attribut type sur Profile-CR. Pour plus d'informations, voir API IAM Identity Services.
    curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/rules' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
    "type": "Profile-CR",
    "conditions": [
    {
    "claim": "namespace",
    "operator": "EQUALS",
    "value": "\"default123\""
       }
       ]
    }'
    

    Le nombre de règles de réclamation est limité à 20 par profil sécurisé.

    Créer un Direct Link
    Vous pouvez établir un lien direct avec des ressources spécifiques existantes.
    curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/links' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
    "name": "my link",
    "cr_type": "VSI",
    "is_cross_account": true,
    "link": {
    "crn": "crn:v1:staging:public:iam-identity::a/18e3020749ce4744b0b472466d61fdb4::computeresource:Fake-Compute-Resource",
    "namespace": "default",
    "name": "my compute resource name"
    }
    }'
    
  3. (Facultatif) Attribuer un accès au profil de confiance.

Attribution d'un accès au profil de confiance à l'aide de l'API

Après avoir établi la confiance avec les utilisateurs fédérés, les ressources informatiques, un service IBM Cloud ou un identifiant de service, vous pouvez attribuer l'accès.

Vous ne pouvez attribuer un accès à l'infrastructure classique que si votre compte est lié à un compte Softlayer.

L'exemple suivant attribue une stratégie avec le rôle d'administrateur à tous les services de gestion des comptes:

curl -X POST \
'https://iam.cloud.ibm.com/v1/policies' \
-H 'Authorization: $TOKEN'\
-H 'Content-Type: application/json'\
-d '{
  "type": "access",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9"
        }
      ]
    }'
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:iam::::role:Administrator"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceType",
          "value": "platform-service"
        }
      ]
    }
  ]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
        .name("iam_id")
        .value("Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9")
        .build();

PolicySubject policySubjects = new PolicySubject.Builder()
        .addAttributes(subjectAttribute)
        .build();

PolicyRole policyRoles = new PolicyRole.Builder()
        .roleId("crn:v1:bluemix:public:iam::::role:Administrator")
        .build();

ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
        .name("accountId")
        .value("exampleAccountId")
        .operator("stringEquals")
        .build();

ResourceAttribute serviceTypeResourceAttribute = new ResourceAttribute.Builder()
        .name("serviceType")
        .value("platform-service")
        .operator("stringEquals")
        .build();

PolicyResource policyResources = new PolicyResource.Builder()
        .addAttributes(accountIdResourceAttribute)
        .addAttributes(serviceTypeResourceAttribute)
        .build();

CreatePolicyOptions options = new CreatePolicyOptions.Builder()
        .type("access")
        .subjects(Arrays.asList(policySubjects))
        .roles(Arrays.asList(policyRoles))
        .resources(Arrays.asList(policyResources))
        .build();

Response<Policy> response = service.createPolicy(options).execute();
Policy policy = response.getResult();

System.out.println(policy);
const policySubjects = [
  {
    attributes: [
      {
        name: 'iam_id',
        value: "Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9",
      },
    ],
  },
];
const policyRoles = [
  {
    role_id: 'crn:v1:bluemix:public:iam::::role:Administrator',
  },
];
const accountIdResourceAttribute = {
  name: 'accountId',
  value: 'exampleAccountId',
  operator: 'stringEquals',
};
const serviceTypeResourceAttribute = {
  name: 'serviceType',
  value: 'platform-service',
  operator: 'stringEquals',
};
const policyResources = [
  {
    attributes: [accountIdResourceAttribute, serviceTypeResourceAttribute]
  },
];
const params = {
  type: 'access',
  subjects: policySubjects,
  roles: policyRoles,
  resources: policyResources,
};

iamPolicyManagementService.createPolicy(params)
  .then(res => {
    examplePolicyId = res.result.id;
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
policy_subjects = PolicySubject(
  attributes=[SubjectAttribute(name='iam_id', value='Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9')])
policy_roles = PolicyRole(
  role_id='crn:v1:bluemix:public:iam::::role:Administrator')
account_id_resource_attribute = ResourceAttribute(
  name='accountId', value=example_account_id)
service_name_resource_attribute = ResourceAttribute(
  name='serviceType', value='platform-service')
policy_resources = PolicyResource(
  attributes=[account_id_resource_attribute,
        service_type_resource_attribute])

policy = iam_policy_management_service.create_policy(
  type='access',
  subjects=[policy_subjects],
  roles=[policy_roles],
  resources=[policy_resources]
).get_result()

print(json.dumps(policy, indent=2))
subjectAttribute := &iampolicymanagementv1.SubjectAttribute{
  Name:  core.StringPtr("iam_id"),
  Value: core.StringPtr("Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
  Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
  RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Administrator"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("accountId"),
  Value:    core.StringPtr("ACCOUNT_ID"),
  Operator: core.StringPtr("stringEquals"),
}
serviceTypeResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("serviceType"),
  Value:    core.StringPtr("platform-service"),
  Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
  Attributes: []iampolicymanagementv1.ResourceAttribute{
    *accountIDResourceAttribute, *serviceTypeResourceAttribute},
}

options := iamPolicyManagementService.NewCreatePolicyOptions(
  "access",
  []iampolicymanagementv1.PolicySubject{*policySubjects},
  []iampolicymanagementv1.PolicyRole{*policyRoles},
  []iampolicymanagementv1.PolicyResource{*policyResources},
)

policy, response, err := iamPolicyManagementService.CreatePolicy(options)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(policy, "", "  ")
fmt.Println(string(b))