Connecter les services aux applications

Connectez vos applications ou outils tiers aux services IBM Cloud en générant un nouvel ensemble d'identifiants de service. Ces informations d'identification font le lien entre votre application, qu'elle soit hébergée sur IBM Cloud® ou sur une plateforme externe comme AWS, et le service IBM Cloud® que vous souhaitez utiliser. Par exemple, si vous intégrez une application hébergée sur AWS à watsonx Assistant, vous générez un identifiant de service qui fournit l'accès nécessaire. Vous pouvez ensuite l'ajouter à la configuration de votre application pour établir la connexion.

Pour ajouter des informations d'identification à vos applications, reportez-vous à la documentation relative au type d'application ou à l'option de calcul que vous utilisez.

Création d'un identifiant de service

Les informations d'identification qui ne peuvent être consultées qu'une seule fois doivent être sauvegardées en toute sécurité si vous avez besoin de les récupérer ultérieurement. Les références existantes ne sont pas affectées par cette propriété. Pour plus d'informations, voir Références uniques.

Les services gérés par IBM Cloud Identity and Access Management (IAM) peuvent générer une clé de ressource, également dénommée donnée d'identification. Les données d'identification sont propres au service concerné et varient en fonction de la manière dont chaque service définit les données d'identification devant être générées. Une lettre de créance peut contenir un nom d'utilisateur, un mot de passe, un nom d'hôte, un port et une adresse URL, mais le contenu de chaque lettre de créance est propre au service qui la génère.

Certains services peuvent générer des données supplémentaires nécessitant de renseigner des paramètres. Par exemple, un service peut vous demander d'entrer un paramètre langue pour définir la langue par défaut renvoyée dans la clé de ressource générée.

Les identifiants uniques sont désactivés par défaut pour tous les services qui prennent en charge les identifiants de service (également connus sous le nom de clés de ressources). Pour plus d'informations sur les services qui prennent en charge les informations d'identification des services, voir les services IBM Cloud pris en charge.

Pour ajouter des informations d'identification à votre service :

Suivez les étapes suivantes pour ajouter un justificatif d'identité à un service :

  1. Dans la liste des ressources, sélectionnez le nom du service pour ouvrir la page des détails du service.

  2. Cliquez sur Données d'identification pour le service.

  3. Cochez le paramètre Vue unique, qui détermine si vous pouvez récupérer les valeurs de la clé de ressource ultérieurement.

    1. Régler sur On ou Off en fonction de votre cas d'utilisation. Les utilisateurs ayant le rôle d'administrateur sur l'instance de ressource peuvent gérer ce paramètre à l'aide de l'API du contrôleur de ressources.

      La fonction Activé permet d'assurer la conformité avec les meilleures pratiques et réglementations en matière de sécurité, telles que PCI DSS, en empêchant l'accès partagé aux informations d'identification.

  4. Cliquez sur Create credential.

  5. Entrez un Nom.

  6. Attribuer un rôle d'accès au service IAM. Pour plus d'informations sur les rôles, voir IBM Cloud IAM roles.

    1. Spécifiez None pour n'attribuer aucun rôle à la nouvelle référence si vous souhaitez gérer l'accès en associant un identifiant de service nouveau ou existant à la référence de service.
  7. (Facultatif) Sélectionnez un identifiant de service existant ou Créez un nouvel identifiant de service à associer à l'identifiant. De cette façon, vous pouvez gérer l'accès directement dans IAM en allant dans Gérer > Accès (IAM) > Service IDs. Pour plus d'informations, voir Création et utilisation des ID de service.

    Pour les services dont l'accès aux ressources est plus fin, vous pouvez utiliser un identifiant de service pour n'accorder l'accès qu'à une sous-ressource, telle qu'un godet Object Storage.

  8. Cliquez sur Options avancées pour fournir davantage de paramètres sous la forme d'un objet JSON valide qui contient des paramètres de configuration spécifiques au service, fournis en ligne ou dans un fichier.

    La plupart des services ne requièrent pas de paramètres supplémentaires et pour ceux qui en ont besoin, chaque service définit sa propre liste unique de paramètres. Pour une liste des paramètres de configuration pris en charge, voir la documentation du service concerné.

  9. Cliquez sur Créer pour générer le nouvel identifiant de service.

    Les informations d'identification du service sont en lecture seule. L'utilisateur peut copier ou télécharger les informations d'identification.

  10. Si l'identifiant est configuré pour être consulté une seule fois, il ne peut pas être consulté à nouveau.

  11. Développez les détails de votre nouveau titre de service. Copiez les propriétés de l'identifiant dont votre application ou votre consommateur externe a besoin. Par exemple, la clé API ou le mot de passe et URL.

Création d'un identifiant de service à l'aide de l'API

Les informations d'identification qui ne peuvent être consultées qu'une seule fois doivent être sauvegardées en toute sécurité si vous avez besoin de les récupérer ultérieurement. Les références existantes ne sont pas affectées par cette propriété. Pour plus d'informations, voir Références uniques.

IBM Cloud peuvent générer une clé de ressource, également connue sous le nom de "credential". Les données d'identification sont propres au service concerné et varient en fonction de la manière dont chaque service définit les données d'identification devant être générées. Une lettre de créance peut contenir un nom d'utilisateur, un mot de passe, un nom d'hôte, un port et une adresse URL, mais le contenu de chaque lettre de créance est propre au service qui la génère.

Certains services peuvent générer des données supplémentaires nécessitant de renseigner des paramètres. Par exemple, un service peut vous demander d'entrer un paramètre langue pour définir la langue par défaut renvoyée dans la clé de ressource générée.

Vous pouvez attribuer un rôle d'accès au service IAM aux nouvelles informations d'identification que vous générez pour un service IBM Cloud. Ce rôle permet d'accéder à l'ensemble de l'instance de service, et non à une ressource spécifique. Pour les services dont l'accès aux ressources est plus fin, il se peut que vous souhaitiez n'accorder l'accès qu'à une sous-ressource, telle qu'un godet Object Storage. Dans ce cas, n'attribuez aucun rôle au nouvel identifiant. De cette façon, vous pouvez gérer l'accès de manière fine en associant le justificatif à un identifiant de service et en créant une politique IAM qui s'applique à une ressource spécifique, telle qu'un godet. Pour ce faire, allez dans Gérer > Accès (IAM) > Service IDs. Sélectionnez l'ID de service portant le même nom que la clé d'identification du service, puis cliquez sur Attribuer l'accès.

Pour créer une clé de ressource, appelez l'API du contrôleur de ressource, comme illustré dans l'exemple suivant :

curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_keys -H 'Authorization: Bearer <IAM_TOKEN>' -H 'Content-Type: application/json' -d '{
  "name": "my-instance-key-1",
  "source": "267bf377-7fa2-43f6-94ec-09103a8e89d4",
  "role": "Writer"
}'
ResourceKeyPostParameters parameters = new ResourceKeyPostParameters.Builder()
  .add("exampleParameter", "exampleValue")
  .build();
CreateResourceKeyOptions createResourceKeyOptions = new CreateResourceKeyOptions.Builder()
  .name(keyName)
  .source(instanceGuid)
  .parameters(parameters)
  .build();

Response<ResourceKey> response = service.createResourceKey(createResourceKeyOptions).execute();
ResourceKey resourceKey = response.getResult();

System.out.printf("createResourceKey() response:\n%s\n", resourceKey.toString());
const parameters = {
  'exampleParameter': 'exampleValue'
};

const params = {
  name: keyName,
  source: instanceGuid,
  parameters: parameters,
};

resourceControllerService.createResourceKey(params)
  .then(res => {
    instanceKeyGuid = res.result.guid;
    console.log('createResourceKey() response:\n' + JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
parameters = {
    'exampleParameter': 'exampleValue'
}
resource_key = resource_controller_service.create_resource_key(
    name=key_name,
    source=instance_guid,
    parameters=parameters
).get_result()

print('\ncreate_resource_key() response:\n',
      json.dumps(resource_key, indent=2))
createResourceKeyOptions := resourceControllerService.NewCreateResourceKeyOptions(
  keyName,
  instanceGUID,
)

parameters := &resourcecontrollerv2.ResourceKeyPostParameters{}
parameters.SetProperty("exampleParameter", "exampleValue")
createResourceKeyOptions.SetParameters(parameters)

resourceKey, response, err := resourceControllerService.CreateResourceKey(createResourceKeyOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resourceKey, "", "  ")
fmt.Printf("\nCreateResourceKey() response:\n%s\n", string(b))

Utilisez la clé API ou d'autres propriétés d'identification pour connecter l'instance de service à votre application ou à un autre consommateur externe.

Création d'un identifiant de service à l'aide de Terraform

Les informations d'identification qui ne peuvent être consultées qu'une seule fois doivent être sauvegardées en toute sécurité si vous avez besoin de les récupérer ultérieurement. Les références existantes ne sont pas affectées par cette propriété. Pour plus d'informations, voir Références uniques.

Un credential peut contenir un nom d'utilisateur, un mot de passe, un nom d'hôte, un port et un URL, mais le contenu de chaque credential est unique au service qui génère it.Before vous pouvez créer un credential pour connecter votre application ou un consommateur externe à un service IBM Cloud en utilisant Terraform, assurez-vous que vous avez effectué ce qui suit :

  • Installez l'interface de ligne de commande Terraform et configurez le plug-in IBM Cloud Provider pour Terraform. Pour plus d'informations, voir le tutoriel Initiation à Terraform sur IBM Cloud®. Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.
  • Créez un fichier de configuration Terraform nommé main.tf. Dans ce fichier, vous définissez des ressources à l'aide du langage de configuration HashiCorp. Pour plus d'informations, voir la documentation de Terraform.

Suivez les étapes suivantes pour créer un identifiant permettant de connecter votre application ou votre consommateur externe à un service IBM Cloud:

  1. Créez un argument dans votre fichier main.tf. L'exemple ci-après crée les données d'identification d'une ressource sans ID service à l'aide de la ressource ibm_resource_instance, name représentant un nom unique permettant d'identifier les données d'identification.

    data "ibm_resource_instance" "resource_instance" {
     name = "myobjectsotrage"
    }
    
    resource "ibm_resource_key" "resourceKey" {
     name                 = "myobjectkey"
     role                 = "Viewer"
     resource_instance_id = data.ibm_resource_instance.resource_instance.id
    
     //User can increase timeouts
     timeouts {
       create = "15m"
      delete = "15m"
     }
    }
    

    Par défaut, la ressource ibm_resource_key crée les données d'identification de service qui utilisent le noeud final de service public d'un service

    Vous pouvez spécifier des tags associées à l'instance de groupe de ressources. Pour plus d'informations, voir les détails de la référence des arguments sur la page Terraform Resource Management.

  2. Une fois que vous avez terminé de générer votre fichier de configuration, initialisez l'interface de ligne de commande Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.

    terraform init
    
  3. Mettez à disposition les ressources à partir du fichier main.tf. Pour plus d'informations, voir Mise à disposition d'une infrastructure avec Terraform.

    1. Exécutez terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.

      terraform plan
      
    2. Exécutez terraform apply pour créer les ressources définies dans le plan.

      terraform apply
      

Utilisez la clé API ou d'autres propriétés d'identification pour connecter l'instance de service à votre application ou à un autre consommateur externe.

Visualisation d'un justificatif d'identité à l'aide de Terraform

Vous ne pouvez récupérer un identifiant après sa création que si onetime_credentials est false pour cet identifiant. onetime_credentials Les utilisateurs disposant de l'accès suivant sur l'instance de ressource peuvent visualiser les valeurs des clés de service pour les informations d'identification qui ont été configurées sur false.

  • Utilisateurs ayant un accès à l'instance de service égal ou supérieur à l'accès au justificatif de service. Pour plus d'informations, voir Accès au niveau des justificatifs.
  • Utilisateurs ayant le rôle d'administrateur sur l'instance de service
  • Utilisateurs avec l'action IAM resource-controller.credential.retrieve_all. Cette action est attribuée avec le rôle d'administrateur.

Pour afficher les données d'identification de service d'un service, procédez comme suit :

  1. Créez un argument dans votre fichier main.tf. L'exemple suivant permet de récupérer un justificatif d'identité existant pour une ressource. Pour plus d'informations, voir la documentation de Terraform sur ibm_resource_key.

    data "ibm_resource_key" "resourceKeydata" {
      name                  = "myobjectKey"
      resource_instance_id  = ibm_resource_instance.resource.id
    }
    
  2. Une fois que vous avez terminé de générer votre fichier de configuration, initialisez l'interface de ligne de commande Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.

    terraform init
    
  3. Mettez à disposition les ressources à partir du fichier main.tf. Pour plus d'informations, voir Mise à disposition d'une infrastructure avec Terraform.

    1. Exécutez terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.

      terraform plan
      
    2. Exécutez terraform apply pour créer les ressources définies dans le plan.

      terraform apply
      

Références uniques

Une instance de ressource possède une propriété onetime_credentials qui détermine si les informations d'identification que vous créez pour cette instance sont à usage unique. La configuration de l'instance au moment de la création détermine comment la propriété est définie pour chaque donnée d'identification et ne peut pas être modifiée par la suite.

  • Si cette propriété est définie sur false, le justificatif d'identité peut être récupéré à tout moment par les utilisateurs qui y ont accès. Pour plus d'informations sur la récupération d'un identifiant, voir la documentation ibm_resource_key de Terraform.

  • Si cette propriété est définie sur true, vous ne pouvez voir le justificatif d'identité qu'au moment de la création

    Sauvegardez les informations d'identification à usage unique en toute sécurité en utilisant un gestionnaire de secrets, un gestionnaire de mots de passe ou un système de stockage sécurisé, tel que Object Storage, dans votre application afin d'éviter toute perte.

Permettre la visualisation unique des instances de service pour s'aligner sur le modèle du moindre privilège et éviter l'accès partagé aux informations d'identification. Les clés partagées peuvent rendre difficile la vérification de la manière dont les identités de votre compte accèdent aux ressources.

Gestion du paramètre de vue unique pour une instance de ressource

Les utilisateurs ayant le rôle d'administrateur ou l'action IAM resource-controller.instance.update_onetime_credential_off sur l'instance de service peuvent gérer le paramètre de vue unique pour une instance de ressource.

 {
      "displayName": {
        "default": "Resource Instance Update Onetime Credential Off"
      },
      "description": {
        "default": "The ability to change onetime_credential from On to Off for existing instances."
      },
      "id": "resource-controller.instance.update_onetime_credential_off",
      "roles": [
        "crn:v1:bluemix:public:iam::::role:Administrator"
      ],
      "apiTypes": [
        "crn:v1:bluemix:public:context-based-restrictions::::platform-api-type:resource-management"
      ]
    }

Pour plus d'informations, consultez la documentation Terraform ibm_resource_instance pour mettre à jour la propriété onetime_credentials. Lorsque vous modifiez les paramètres d'une instance, les informations d'identification existantes conservent les paramètres qu'elles avaient au moment de la création.

Accès au niveau des données d'identification

L'accès de l'utilisateur doit être supérieur ou égal à l'accès des données d'identification de service. Par exemple, si les données d'identification ont le rôle de service IAM Writer, l'utilisateur qui tente d'afficher les données d'identification doit avoir le rôle de service IAM Writer ou Manager pour ce service particulier affecté. Lorsqu'un utilisateur ne dispose pas de l'accès approprié, des détails tels que la valeur de clé d'API sont occultés :

    "credentials": {
        "REDACTED": "REDACTED"
    },

Accès au niveau IAM

Lorsque l'accès au niveau des données d'identification ne peut pas être déterminé en comparant l'accès de l'utilisateur et les données d'identification, les données d'identification sont occultées :

    "credentials": {
        "REDACTED": "REDACTED_EXPLICIT"
    },

Affichage de données d'identification

Une fois qu'un justificatif d'identité est créé pour un service dont la configuration est onetime_credentials et false, il peut être consulté à tout moment par les utilisateurs qui ont besoin des valeurs du justificatif d'identité. Cependant, tous les utilisateurs doivent avoir le niveau d'accès correct pour afficher les détails d'un droit d'accès qui inclut la valeur de clé d'API. Vous ne pouvez récupérer un identifiant après sa création que si l'affichage unique est désactivé pour cet identifiant. Les utilisateurs ayant l'accès suivant sur l'instance de ressource peuvent voir les valeurs des clés de service pour les informations d'identification dont l'affichage unique est désactivé.

  • Utilisateurs ayant un accès à l'instance de service égal ou supérieur à l'accès au justificatif de service. Pour plus d'informations, voir Accès au niveau des justificatifs.
  • Utilisateurs ayant le rôle d'administrateur sur l'instance de service.
  • Utilisateurs avec l'action IAM resource-controller.credential.retrieve_all. Cette action est attribuée avec le rôle d'administrateur.

Pour afficher les données d'identification de service d'un service, procédez comme suit :

  1. Sur la page Liste de ressources, sélectionnez le nom du service pour ouvrir la page des détails de ce service.
  2. Cliquez sur Données d'identification pour le service.
  3. Développez Afficher les données d'identification sur la ligne de données d'identification existantes.

Références uniques

Le titre a une propriété onetime_credentials qui détermine si vous pouvez récupérer et visualiser le titre après sa création initiale. Si la propriété est définie sur « false », les utilisateurs disposant d'un accès peuvent consulter les valeurs des informations d'identification à tout moment. Une instance de ressource possède un paramètre "Vue à usage unique" qui détermine si les données d'identification que vous créez pour l'instance sont consultables une seule fois. Les données d'identification à usage unique ne peuvent être consultées et sauvegardées qu'au moment de leur création. La configuration de l'instance au moment de la création détermine comment la propriété est définie pour chaque donnée d'identification et ne peut pas être modifiée par la suite.

  • Si l'affichage unique est "désactivé", le justificatif d'identité peut être récupéré à tout moment par les utilisateurs qui y ont accès.

  • Si l'option de consultation unique est activée, vous ne pouvez consulter le titre qu'au moment de sa création.

    Sauvegardez les informations d'identification à usage unique en toute sécurité en utilisant un gestionnaire de secrets, un gestionnaire de mots de passe ou un système de stockage sécurisé, tel que Object Storage, dans votre application afin d'éviter toute perte.

Permettre la visualisation unique des instances de service pour s'aligner sur le modèle du moindre privilège et éviter l'accès partagé aux informations d'identification. Les clés partagées peuvent rendre difficile la vérification de la manière dont les identités de votre compte accèdent aux ressources.

Gestion du paramètre de vue unique pour une instance de ressource

Les utilisateurs ayant le rôle d'administrateur ou l'action IAM resource-controller.instance.update_onetime_credential_off sur une instance de service peuvent gérer le paramètre de vue unique pour cette instance.

 {
      "displayName": {
        "default": "Resource Instance Update Onetime Credential Off"
      },
      "description": {
        "default": "The ability to change onetime_credential from On to Off for existing instances."
      },
      "id": "resource-controller.instance.update_onetime_credential_off",
      "roles": [
        "crn:v1:bluemix:public:iam::::role:Administrator"
      ],
      "apiTypes": [
        "crn:v1:bluemix:public:context-based-restrictions::::platform-api-type:resource-management"
      ]
    }

Pour plus d'informations, voir l'API du contrôleur de ressources pour mettre à jour la propriété onetime_credentials d'une instance. Lorsque vous modifiez les paramètres d'une instance, les informations d'identification existantes conservent les paramètres qu'elles avaient au moment de la création.

Les informations d'identification existantes créées avant ce changement de propriété ne sont pas affectées.

Accès au niveau des données d'identification

L'accès de l'utilisateur doit être supérieur ou égal à l'accès des données d'identification de service. Par exemple, si les données d'identification détiennent le rôle de service IAM Writer, l'utilisateur qui tente d'afficher les données d'identification doit détenir le rôle de service IAM Writer ou Manager pour ce service affecté particulier. Lorsqu'un utilisateur ne dispose pas de l'accès approprié, des détails tels que la valeur de clé d'API sont occultés :

    "credentials": {
        "REDACTED": "REDACTED"
    },

Accès au niveau IAM

Lorsque l'accès au niveau des données d'identification ne peut pas être déterminé en comparant l'accès de l'utilisateur et les données d'identification, les données d'identification sont occultées :

    "credentials": {
        "REDACTED": "REDACTED_EXPLICIT"
    },

Pour afficher les droits d'identification, l'utilisateur doit disposer de l'action d'accès au niveau IAM resource-controller.credential.retrieve_all. Cette action est fournie avec le rôle Administrateur et remplace tout accès au niveau des données d'identification permettant à l'utilisateur d'afficher les données d'identification.

Affichage de données d'identification à l'aide de l'API

Une fois qu'un justificatif d'identité est créé pour un service dont la configuration est onetime_credentials et false, il peut être consulté à tout moment par les utilisateurs qui ont besoin des valeurs du justificatif d'identité. Cependant, tous les utilisateurs doivent avoir le niveau d'accès correct pour afficher les détails d'un droit d'accès qui inclut la valeur de clé d'API. Le niveau d'accès de l'utilisateur doit être égal ou supérieur à celui des données d'identification du service. Par exemple, si l'identifiant a le rôle de service IAM Writer, l'utilisateur qui essaie de voir l'identifiant doit avoir le rôle de service IAM Writer ou Manager pour ce service particulier. Vous ne pouvez récupérer un identifiant après sa création que si onetime_credentials est false pour cet identifiant. onetime_credentials Les utilisateurs disposant de l'accès suivant sur l'instance de ressource peuvent visualiser les valeurs des clés de service pour les informations d'identification qui ont été configurées sur false.

  • Utilisateurs ayant un accès à l'instance de service égal ou supérieur à l'accès au justificatif de service. Pour plus d'informations, voir Accès au niveau des justificatifs.
  • Utilisateurs ayant le rôle d'administrateur sur l'instance de service.
  • Utilisateurs avec l'action IAM resource-controller.credential.retrieve_all. Cette action est attribuée avec le rôle d'administrateur.

Pour obtenir la liste de toutes les clés de ressource, appelez l'API du contrôleur de ressource, comme illustré dans l'exemple suivant :

curl -X GET https://resource-controller.cloud.ibm.com/v2/resource_keys -H 'Authorization: Bearer <IAM_TOKEN>'
ListResourceKeysOptions listResourceKeysOptions = new ListResourceKeysOptions.Builder()
  .name(keyName)
  .build();

Response<ResourceKeysList> response = service.listResourceKeys(listResourceKeysOptions).execute();
ResourceKeysList resourceKeysList = response.getResult();

System.out.printf("listResourceKeys() response:\n%s\n", resourceKeysList.toString());
const params = {
  name: keyName,
};

resourceControllerService.listResourceKeys(params)
  .then(res => {
    console.log('listResourceKeys() response:\n' + JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
resource_keys_list = resource_controller_service.list_resource_keys(
    name=key_name
).get_result()

print('\nlist_resource_keys() response:\n',
      json.dumps(resource_keys_list, indent=2))
listResourceKeysOptions := resourceControllerService.NewListResourceKeysOptions()
listResourceKeysOptions = listResourceKeysOptions.SetName(keyName)

resourceKeysList, response, err := resourceControllerService.ListResourceKeys(listResourceKeysOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resourceKeysList, "", "  ")
fmt.Printf("\nListResourceKeys() response:\n%s\n", string(b))

Exemple de réponse :

{
  "rows_count": 1,
  "next_url": null,
  "resources": [
    {
      "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/4329073d16d2f3663f74bfa955259139:8d7af921-b136-4078-9666-081bd8470d94:resource-key:23693f48-aaa2-4079-b0c7-334846eff8d0",
      "guid": "23693f48-aaa2-4079-b0c7-334846eff8d0",
      "url": "/v2/resource_keys/23693f48-aaa2-4079-b0c7-334846eff8d0",
      "created_at": "2018-07-02T22:03:43.837979455Z",
      "updated_at": "2018-07-02T22:03:43.837979455Z",
      "deleted_at": null,
      "created_by": "IBMid-5500093BHN",
      "updated_by": "IBMid-5500093BHN",
      "deleted_by": "",
      "source_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/4329073d16d2f3663f74bfa955259139:8d7af921-b136-4078-9666-081bd8470d94::",
      "role": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
      "name": "my-instance-key-1",
      "parameters": {
        "role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
      },
      "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/4329073d16d2f3663f74bfa955259139:8d7af921-b136-4078-9666-081bd8470d94:resource-key:23693f48-aaa2-4079-b0c7-334846eff8d0",
      "state": "active",
      "account_id": "4329073d16d2f3663f74bfa955259139",
      "resource_group_id": "0be5ad401ae913d8ff665d92680664ed",
      "resource_id": "dff97f5c-bc5e-4455-b470-411c3edbe49c",
      "onetime_credentials": false,
      "credentials": {
        "apikey": "XXXX-YYYY-ZZZZ\"",
        "endpoints": "https://cos-service-armada-s.us-south.containers.mybluemix.net/endpoints",
        "iam_apikey_description": "Auto generated apikey during resource-key operation for Instance - crn:v1:bluemix:public:cloud-object-storage:global:a/4329073d16d2f3663f74bfa955259139:8d7af921-b136-4078-9666-081bd8470d94::",
        "iam_apikey_name": "auto-generated-apikey-23693f48-aaa2-4079-b0c7-334846eff8d0",
        "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
        "iam_serviceid_crn": "crn:v1:bluemix:public:iam-identity::a/4329073d16d2f3663f74bfa955259139::serviceid:ServiceId-64c29e4f-422d-468c-a11b-1a8f671b5c89",
        "resource_instance_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/4329073d16d2f3663f74bfa955259139:8d7af921-b136-4078-9666-081bd8470d94::"
      },
      "iam_compatible": true,
      "migrated": false,
      "resource_instance_url": "/v2/resource_instances/8d7af921-b136-4078-9666-081bd8470d94",
      "resource_alias_url": null
    }
  ]
}

Références uniques

Une instance de ressource possède une propriété onetime_credentials qui détermine si les informations d'identification que vous créez pour cette instance sont à usage unique. La configuration de l'instance au moment de la création détermine comment la propriété est définie pour chaque donnée d'identification et ne peut pas être modifiée par la suite.

  • Si cette propriété est définie sur false, le justificatif d'identité peut être récupéré à tout moment par les utilisateurs qui y ont accès. Pour plus d'informations sur la récupération d'un justificatif d'identité, voir l'opération Obtenir une clé de ressource.

  • Si cette propriété est définie sur true, vous ne pouvez consulter le justificatif qu'au moment de la création, veillez donc à l'enregistrer en toute sécurité.

    Sauvegardez les informations d'identification à usage unique en toute sécurité en utilisant un gestionnaire de secrets, un gestionnaire de mots de passe ou un système de stockage sécurisé, tel que Object Storage, dans votre application afin d'éviter toute perte.

Permettre la visualisation unique des instances de service pour s'aligner sur le modèle du moindre privilège et éviter l'accès partagé aux informations d'identification. Les clés partagées peuvent rendre difficile la vérification de la manière dont les identités de votre compte accèdent aux ressources.

Gestion du paramètre de vue unique pour une instance de ressource

Les utilisateurs ayant le rôle d'administrateur ou l'action IAM resource-controller.instance.update_onetime_credential_off sur une instance de service peuvent gérer le paramètre de vue unique pour cette instance.

 {
      "displayName": {
        "default": "Resource Instance Update Onetime Credential Off"
      },
      "description": {
        "default": "The ability to change onetime_credential from On to Off for existing instances."
      },
      "id": "resource-controller.instance.update_onetime_credential_off",
      "roles": [
        "crn:v1:bluemix:public:iam::::role:Administrator"
      ],
      "apiTypes": [
        "crn:v1:bluemix:public:context-based-restrictions::::platform-api-type:resource-management"
      ]
    }

Pour plus d'informations, voir l'API du contrôleur de ressources pour mettre à jour la propriété onetime_credentials d'une instance. Lorsque vous modifiez les paramètres d'une instance, les informations d'identification existantes conservent les paramètres qu'elles avaient au moment de la création.

Accès au niveau des données d'identification

L'accès de l'utilisateur doit être supérieur ou égal à l'accès des données d'identification de service. Par exemple, si les données d'identification ont le rôle de service IAM Writer, l'utilisateur qui tente d'afficher les données d'identification doit avoir le rôle de service IAM Writer ou Manager pour ce service particulier affecté. Lorsqu'un utilisateur ne dispose pas de l'accès approprié, des détails tels que la valeur de clé d'API sont occultés :

    "credentials": {
        "REDACTED": "REDACTED"
    },

Accès au niveau IAM

Lorsque l'accès au niveau des données d'identification ne peut pas être déterminé en comparant l'accès de l'utilisateur et les données d'identification, les données d'identification sont occultées :

    "credentials": {
        "REDACTED": "REDACTED_EXPLICIT"
    },

Pour afficher les droits d'identification, l'utilisateur doit disposer de l'action d'accès au niveau IAM resource-controller.credential.retrieve_all. Cette action est fournie avec le rôle Administrateur et remplace tout accès au niveau des données d'identification permettant à l'utilisateur d'afficher les données d'identification.