Gestion des accès à IBM Cloudant
IBM Cloud® Identity and Access Management offre une approche unifiée pour gérer les identités des utilisateurs, les services et le contrôle d'accès.
Le texte suivant décrit l'intégration de IBM® Cloudant® for IBM Cloud® à IBM Cloud Identity and Access Management. Les sujets suivants sont traités :
- Différences entre les contrôles d'accès existants d'IBM Cloudant et les contrôles d'accès IAM d'IBM Cloud.
- Avantages et inconvénients de chaque option pour vous aider à décider laquelle utiliser.
- Utilisation d'IAM dans les bibliothèques client d'IBM Cloudant à l'aide d'appels HTTP.
- Description des actions et des rôles IAM disponibles dans IBM Cloudant.
Pour plus d'informations, voir une présentation d' IAM qui inclut les rubriques suivantes:
- La gestion des ID d'utilisateur et des ID de service.
- Gérez les données d'identification disponibles.
- L'utilisation des politiques d'accès IAM qui autorisent et révoquent les accès aux instances de service IBM Cloudant.
Différences entre les contrôles d'accès existants d'IBM Cloudant et les contrôles d'accès IAM
La section suivante fournit une brève présentation des différences entre IBM Cloudant Les contrôles d'accès existants et les mécanismes de contrôle d'accès de IBM Cloud IAM.
IBM Cloud Identity and Access Management
- Gestion centrale des accès dans tout IBM Cloud.
- Permet à un utilisateur ou à un service d'accéder à plusieurs ressources différentes avec le même ensemble de données d'identification (par exemple, avec le même nom d'utilisateur/mot de passe ou la même clé d'API IAM).
- Les clés d'API IAM peuvent obtenir un accès aux fonctions de gestion du compte, par exemple pour la création de bases de données.
Contrôles d'accès existants àIBM Cloudant
- Uniques à IBM Cloudant.
- L'accès à chaque instance de service nécessite son propre ensemble de données d'identification.
- Utilisation de l'authentification de base HTTP avec des données d'identification qui ne sont pas liées à un utilisateur ou à un service individuel.
- Les clés d'API d'IBM Cloudant obtiennent des autorisations uniquement au niveau de la base de données.
Remarques concernant les clés d'API
Dans ce document, lorsque des clés d'API sont mentionnées, il est toujours question de clés d'API IAM. Les contrôles d'accès existants d'IBM Cloudant incluent également le concept de clés d'API et dans toutes les discussions relatives aux données d'identification existantes d'IBM Cloudant ou aux combinaisons de nom d'utilisateur/mot de passe, il est également question des clés d'API d'IBM Cloudant.
Activation d'IAM avec IBM Cloudant
Toutes les instances de service IBM Cloudant mises à disposition à partir de juillet 2018 sont mises à disposition dans les groupes de ressources et sont activées avec IBM Cloud IAM. En option, vous pouvez également choisir d'activer le mécanisme d'authentification IBM Cloudant existant. Lorsque vous mettez à disposition une nouvelle instance IBM Cloudant depuis le catalogue IBM Cloud, sélectionnez l'une des méthodes d'authentification disponibles suivantes :
- Utiliser les données d'identification existantes et IAM
- Ce mode signifie que les données d'identification IAM et existantes peuvent être utilisées pour accéder au compte. En particulier, les ensembles de données d'identification existantes et IAM sont fournis à toutes les applications liées au compte et aux données d'identification de service générées.
- Utiliser uniquement IAM
- Ce mode signifie que seules les informations d'identification IAM sont fournies via la liaison de service et la génération d'informations d'identification.
Lorsque vous utilisez des rôles IAM autres que Manager, par exemple Reader, Writer, Monitor ou Checkpointer, vous devez choisir l'option Use only IAM pour éviter de fournir aux utilisateurs des données d'identification existantes offrant des droits d'accès plus importants.
Application des règles
Les politiques IAM sont appliquées de manière hiérarchique, du niveau d'accès le plus élevé au plus restreint, les politiques les plus permissives l'emportant sur les politiques les moins permissives. Par exemple, si un utilisateur dispose à
la fois des rôles d'accès aux services « Writer » et « Reader » sur une base de données, la politique accordant le rôle « Reader » est ignorée.
Cela s'applique également aux politiques au niveau des instances de service et des bases de données.
- Si un utilisateur dispose d'une stratégie lui accordant le rôle «
Writer» sur une instance de service et le rôle «Reader» sur une seule base de données, la stratégie au niveau de la base de données est ignorée. - Si un utilisateur dispose d'une stratégie lui accordant le rôle «
Reader» sur une instance de service et le rôle «Writer» sur une base de données spécifique, les deux stratégies s'appliquent et le rôle «Writer», plus permissif, prévaudra pour cette base de données en particulier.
S'il est nécessaire de restreindre l'accès à une seule base de données (ou à un ensemble de bases de données), assurez-vous que l'identifiant utilisateur ou de service n'est soumis à aucune autre politique au niveau de l'instance, à l'aide de la console ou de l'interface de ligne de commande (CLI).
Pour en savoir plus, consultez la rubrique Meilleures pratiques pour l'organisation des ressources et l'attribution des accès.
Clés API IBM Cloudant et Utilisation seul de IAM
L'utilisation en parallèle des clés d'API d'IBM Cloudant et IAM est possible bien que non recommandée. Cette recommandation est formulée parce que Les clés et les droits d'API IBM Cloudant ne sont pas visibles ou gérables à l'aide de l'interface de stratégie IAM, ce qui rend impossible la gestion holistique de l'accès.
Le choix entre Use only IAM ou Use both legacy credentials and IAM affecte les facteurs suivants :
- Si des données d'identification existantes d'IBM Cloudant du compte sont disponibles pour gérer les bases de données et d'autres actions au niveau du compte.
- Le style de données d'identification fournies durant la génération des données d'identification du service.
En particulier, les clés d'API d'IBM Cloudant peuvent continuer d'être utilisées pour gérer l'accès à la base de données. Ces données d'identification doivent être générées et configurées via l'API HTTP.
Mise à disposition à l'aide de la ligne de commande
Lorsque vous mettez à disposition une nouvelle instance IBM Cloudant depuis la ligne de commande, fournissez une option à l'outil ibmcloud en utilisant le paramètre -p pour activer ou désactiver les données d'identification
existantes pour un compte. L'option est transférée au format JSON et est appelée legacyCredentials.
Pour mettre à disposition une instance et Use only IAM (recommandé), exécutez la commande suivante :
ibmcloud resource service-instance-create "Instance Name" \
cloudantnosqldb Standard us-south \
-p {"legacyCredentials": false}
Lorsque vous utilisez des rôles IAM autres que Manager, par exemple Reader, Writer, Monitor ou Checkpointer, vous devez choisir l'option Use only IAM pour éviter de fournir aux utilisateurs des données d'identification existantes offrant des droits d'accès plus importants.
Pour mettre à disposition une instance en tant que Use both legacy credentials and IAM, exécutez la commande suivante :
ibmcloud resource service-instance-create "Instance Name" \
cloudantnosqldb Standard us-south \
-p {"legacyCredentials": true}
Exemples JSON de données d'identification de service pour chaque option
Le choix entre le contrôle d'accès Use only IAM ou Use both legacy credentials and IAM affecte la manière dont les données d'identification sont livrées à votre application lorsque vous liez et générez des données d'identification du service. Lorsque vous générez des données d'identification dans le fichier IBM Cloud principal L'interface IAM et les clés API sont affichées dans cette interface lorsqu'elles sont générées.
Vous pouvez également générer des données d'identification à partir de la section Données d'identification pour le service, d'une instance de service. La génération de données d'identification de service de cette manière crée un objet BLOB JSON de données d'identification de service que vous pouvez coller dans les applications avec tous les détails nécessaires pour accéder à l'instance de service.
La section ci-après montre à quoi ressemble le JSON de données d'identification de service et ce que signifie chaque valeur.
Lorsque vous sélectionnez Use only IAM, les données d'identification de service qui sont générées contiennent seulement les valeurs IAM, comme le montre l'exemple suivant.
{
"apikey": "MxVp86XHkU82Wc97tdvDF8qM8B0Xdit2RqR1mGfVXPWz",
"iam_apikey_description": "Auto generated apikey during resource-key [...]",
"iam_apikey_name": "auto-generated-apikey-050d21b5-5f[...]",
"iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Manager",
"iam_serviceid_crn": "crn:v1:staging:public:iam-identity::[...]",
"url": "https://76838001-b883-444d-90d0-46f89e942a15-bluemix.cloudant.com",
"username": "76838001-b883-444d-90d0-46f89e942a15-bluemix"
}
Chaque valeur fournie dans l'exemple de JSON précédent doit être interprétée à l'aide des définitions suivantes :
apikey- Clé d'API IAM.
iam_apikey_description- Description de la clé d'API IAM.
iam_apikey_name- ID de la clé d'API IAM.
iam_role_crn- Rôle IAM associé à la clé d'API IAM.
iam_serviceid_crn- CRN de l'ID de service.
url- URL de service IBM Cloudant.
username- Nom du compte IBM Cloudant interne.
Lorsque vous sélectionnez Use both legacy credentials and IAM, les données d'identification de service qui sont générées contiennent à la fois les données d'identification existantes et IAM, comme dans l'exemple suivant.
{
"apikey": "MxVp86XHkU82Wc97tdvDF8qM8B0Xdit2RqR1mGfVXPWz",
"host": "76838001-b883-444d-90d0-46f89e942a15-bluemix.cloudant.com",
"iam_apikey_description": "Auto generated apikey during resource-key [...]",
"iam_apikey_name": "auto-generated-apikey-050d21b5-5f[...]",
"iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Manager",
"iam_serviceid_crn": "crn:v1:staging:public:iam-identity::[...]",
"password": "8fb6a16b48903e87b769e7f4968521e85c2394ed8f0e69b2769e56dcb27d2e76",
"port": 443,
"url": "https://<username>:<password>@76838001-b883-444d-90d0-46f89e942a15-bluemix.cloudant.com",
"username": "apikey-v2-58B528DF5397465BB6673E1B79482A8C"
}
Chaque valeur fournie dans l'exemple de JSON précédent doit être interprétée à l'aide des définitions suivantes :
apikey- Clé d'API IAM.
host- Nom d'hôte du service IBM Cloudant .
iam_apikey_description- Description de la clé d'API IAM.
iam_apikey_name- ID de la clé d'API IAM.
iam_role_crn- Rôle IAM associé à la clé d'API IAM.
iam_serviceid_crn- CRN de l'ID de service.
password- Le mot de passe des données d'identification actuelles IBM Cloudant .
port- Port de service IBM Cloudant.
url- URL de service IBM Cloudant, y compris les données d'identification IBM Cloudant existantes.
username- Le nom d'utilisateur du droit d'accès IBM Cloudant existant.
Notez que username et password correspondent toujours aux données d'identification du Responsable dans IAM. Par conséquent, l'option Use both legacy credentials and IAM n'est pas sûre lorsqu'elle est utilisée
avec les rôles IAM Reader, Writer, Monitor ou Checkpointer.
Dois-je utiliser Use only IAM ou Use both legacy credentials and IAM ?
Si possible, il est préférable de choisir l'option Use only IAM. Les principaux avantages de d'utiliser IBM Cloud IAM sont affichés dans la liste suivante :
- Gestion des accès à IBM Cloudant avec les outils standard d'IBM Cloud plutôt qu'en combinant la gestion des données d'identifications spécifique à IBM Cloud et à IBM Cloudant.
- Les données d'identification peuvent être facilement révoquées et renouvelées lorsque vous utilisez IBM Cloud IAM.
Vous trouverez ci-dessous une description supplémentaire des avantages et des inconvénients de chaque approche.
Lorsque vous utilisez des rôles IAM autres que Manager, par exemple Reader, Writer, Monitor ou Checkpointer, vous devez choisir l'option Use only IAM pour éviter de fournir aux utilisateurs des données d'identification existantes offrant des droits d'accès plus importants.
Avantages et inconvénients des deux mécanismes de contrôle d'accès
Globalement, IBM Cloud IAM est le modèle d'authentification recommandé. Cependant il existe des inconvénients à cette approche, principalement si vous avez une application existante ou n'êtes pas en mesure d'utiliser une bibliothèque client prise en charge par IBM Cloudant.
Avantages du mode IAM
- Gestion des accès pour plusieurs services à l'aide d'une seule interface.
- L'accès à un utilisateur peut être révoqué globalement.
- Clés d'API au niveau du compte qui utilisent des ID de service.
- Données d'identification faciles à renouveler.
- Les journaux de suivi des activités capturent les personnes et les services individuels.
- IAM est fédéré avec d'autres systèmes d'identification, tels que les référentiels LDAP d'entreprise.
- Droits à granularité fine (par exemple,
Reader,Writer,MonitorouCheckpointer).
Inconvénients du mode IAM
- Si vous n'utilisez pas les bibliothèques prises en charge par IBM Cloudant, il est possible que des modifications soient nécessaires au niveau de l'application pour utiliser les jetons d'accès et les clés d'API IAM.
- Certains noeuds finaux ne sont pas disponibles. Pour plus d'informations, voir Noeuds finaux non disponibles.
- Il est impossible de spécifier une base de données comme "publique", c'est-à-dire qui ne nécessite pas d'utilisateur autorisé pour l'accès.
Avantages du mode existant
- Pas besoin de changer les applications existantes ou les dépendances de bibliothèques client.
Inconvénients du mode existant
- Gestion séparée des données d'identification d'IBM Cloudant et donc impossibilité d'obtenir un aperçu complet de tous les accès au sein de l'interface centralisée.
Politiques IAM au niveau de la base de données
Des règles IAM peuvent être définies pour restreindre l'accès à des bases de données individuelles ou à des bases de données correspondant à un modèle de caractères génériques.
Pour cibler une base de données, définissez l'attribut Resource Type sur " database. Il existe deux opérateurs disponibles :
| Opérateur | Description |
|---|---|
string equals |
correspond exactement à un nom de base de données codé par URL |
string matches |
effectuer une recherche à l'aide d'un caractère générique à plusieurs caractères (*), qui correspond à n'importe quelle séquence composée de zéro ou plusieurs caractères, d'un caractère générique à un seul caractère (?), qui correspond à n'importe quel caractère unique, ou des deux. |
Les noms des bases de données doivent être codés en URL dans le champ Resource ID de la politique, à l'exception des barres obliques /. Ce " n'est pas s'applique à tous les caractères génériques de
la politique.
Notez que si vous laissez les champs « Type de ressource » ou « ID de ressource » vides, une politique au niveau de l'instance sera créée.
Exemples
| Description | Attribut | Opérateur | Valeur |
|---|---|---|---|
bases de données nommées movies |
Type de ressource | string equals |
database |
| ID ressource | string equals |
movies |
|
bases de données commençant par " movies |
Type de ressource | string equals |
database |
| ID ressource | string matches |
movies* |
|
bases de données nommées movies+new |
Type de ressource | string equals |
database |
| ID ressource | string equals |
movies%2Bnew |
|
bases de données commençant par " movies+* |
Type de ressource | string equals |
database |
| ID ressource | string matches |
movies%2B* |
|
bases de données nommées movies/new |
Type de ressource | string equals |
database |
| ID ressource | string equals |
movies/new |
Création d'un travail de réplication à l'aide des données d'identification IAM uniquement
Suivez les instructions ci-après pour générer des clés d'API IAM, générer le jeton bearer, créer la base de données _replicator et créer le travail de réplication.
Génération de clés d'API IAM pour la source et la cible et d'une autre clé d'API pour l'accès à l'API IBM Cloudant
Dans cet exercice, les deux premières clés d'API sont créées pour que les deux instances puissent communiquer pendant le processus de réplication. La troisième clé d'API est destinée à l'utilisateur qui souhaite accéder à l'API IBM Cloudant,
créer la base de données _replicator, puis y ajouter le document de réplication.
Procédez comme indiqué ci-après pour générer des clés d'API IAM et un accès à l'API pour IBM Cloudant. Vous devez écrire les données d'identification qui seront demandées au cours des étapes suivantes pour pouvoir poursuivre avec l'exemple.
Prenez soin de sélectionner l'instance spécifiée, la source ou la cible.
-
Connectez-vous à
cloud.ibm.com. -
Dans la liste de ressources, sélectionnez Services, ainsi que votre instance source.
-
Cliquez sur Données d'identification pour le service, puis sur Nouvelles données d'identification.
-
Nommez les nouvelles données d'identification
replicator-source, puis sélectionnez le rôle Responsable. -
Cliquez sur Ajouter et notez sa clé d'API (
apikey), qui se trouve sous Afficher les données d'identification dans la colonne Actions.
-
-
Répétez les étapes 2 à 2.c. pour l'instance cible.
-
Créez des données d'identification nommées
replicator-targetavec le rôle Responsable. -
Notez sa clé d'API IAM, qui figure sous Afficher les données d'identification dans la colonne Actions.
-
-
Sélectionnez l'instance source, puis cliquez sur Données d'identification pour le service pour le service et Nouvelles données d'identification du service.
-
Nommez les nouvelles données d'identification
apiaccess, puis sélectionnez le rôle Responsable. -
Notez la clé d'API IAM réelle, qui figure sous Afficher les données d'identification dans la colonne Actions.
-
-
Notez les URL des instances source et cible.
En fonction de votre flux de travail, au lieu de créer un identifiant de niveau service (étape 4), vous pouvez utiliser une clé API IAM personnelle, comme indiqué dans la section « Création d'une clé API ».
Vous pouvez également effectuer ces étapes en ligne de commande à l'aide de la suite d'outils CLI « IBM Cloud ».
Génération d'un jeton bearer pour s'authentifier auprès de l'API IBM Cloudant
A l'étape 4.b, vous avez noté la clé apiaccess. Utilisez cette clé maintenant:
curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=aSCsx4...2lN97h_2Ts" \
"https://iam.cloud.ibm.com/identity/token"
La clé apiaccess renvoie les informations suivantes (abrégées) :
{
"access_token": "eyJraWQiOiIyMDE5MD...tIwkCO9A",
"refresh_token": "ReVbNrHo3UA38...mq67g",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1566313064,
"scope": "ibm openid"
}
Créez une variable d'environnement pour vous épargner de la saisie en utilisant la valeur sous la clé access_token dans les données de réponse :
export TOK="Bearer eyJraWQiOiIyMDE5MD...tIwkCO9A"
Création de la base de données _replicator coté source
L'URL est l'URL de l'instance source que vous avez précédemment écrite à l'étape 4.b.
curl -k -X PUT \
-H"Content-type: application/json" \
-H'Authorization: '"$TOK"'' \
'https://d43caf1b-e2c8-4d3e-9b85-1d04839fa68f-bluemix.cloudant.com/_replicator'
Consultez les résultats illustrés dans l'exemple suivant :
{"ok": "true"}
Création du travail de réplication
Créez un fichier nommé data.json contenant les informations ci-après. Il s'agit des deux clés d'API source et cible qui ont été créées au début, et des URL des instances source et cible, avec les noms de base de données ajoutés.
{
"source": {
"url": "https://d43caf1b-e2c8-4d3e-9b85-1d04839fa68f-bluemix.cloudant.com/source",
"auth": {
"iam": {
"api_key": "xju1...TxuS"
}
}
},
"target": {
"url": "https://dbc68dd8-f69f-4083-97dd-bf0a3e1a467a-bluemix.cloudant.com/target",
"auth": {
"iam": {
"api_key": "UElc7...QIaL01Bjn"
}
}
},
"create_target": true,
"continuous": true
}
A présent, écrivez un document de réplication nommé source_dest dans la base de données _replicator sur l'instance Source.
curl -k -X PUT \
-H"Content-type: application/json" \
-H'Authorization: '"$TOK"'' \
'https://d43caf1b-e2c8-4d3e-9b85-1d04839fa68f-bluemix.cloudant.com/_replicator/source_dest' -d@data.json
Consultez les résultats illustrés dans l'exemple suivant :
{"ok":true,"id":"source_dest","rev":"1-89b01e42968acd5944ed657b87c49f0c"}
Retrait des données d'identification IBM Cloudant existantes d'une instance
IBM Cloud IAM est le modèle d'authentification recommandé. A des fins de sécurité, vous pouvez demander de retirer les données d'identification IBM Cloudant existantes de façon à ce que seule l'authentification IAM puisse être utilisée pour l'instance. Le processus correct de suppression des données d'identification existantes est présenté dans la procédure ci-dessous :
-
Assurez-vous que l'authentification IAM est activée sur l'instance IBM Cloudant.
-
Mettez à jour votre application pour utiliser l'authentification IAM au lieu de l'authentification IBM Cloudant existante.
-
Générez de nouvelles données d'identification de service, selon les besoins.
-
Ouvrez un nouveau cas de support IBM Cloud qui demande le retrait des données d'identification de service IBM Cloudant existantes pour votre instance. Incluez le nom d'utilisateur de l'instance, comme indiqué dans les données d'identification pour le service. Pour plus d'informations, voir Localisation de vos données d'identification de service.
-
Une fois que vous avez été informé par le support que les données d'identification de service existantes ont été retirées, toutes les données d'identification de service créées avant le retrait contiennent des détails relatifs au nom d'utilisateur et au mot de passe existants qui ne fonctionnent plus. Il est recommandé de retirer toutes ces entrées de données d'identification de service.
Envoi de demandes aux instances à l'aide des données d'identification IAM
La section suivante explique à présent comment utiliser IBM Cloudant avec des instances de service via l'authentification IAM. Nous utiliserons les informations fournies sous Exemples JSON de données d'identification de service pour chaque option.
IBM Cloud IAM exige qu'une clé d'API IAM soit échangée contre un jeton d'accès limité dans le temps avant d'envoyer une demande à une ressource ou à un service. Le jeton d'accès est ensuite inclus dans l'en-tête HTTP Authorization envoyée au service. Quand le jeton d'accès expire, l'application consommatrice doit en obtenir un autre de la part du service de jeton IAM. Pour plus d'informations, consultez la documentation intitulée « Obtenir un jeton IAM d' IBM Cloud à l'aide d'une clé API » pour plus de détails.
Les bibliothèques client officielles d'IBM Cloudant gèrent l'obtention d'un jeton à partir d'une clé d'API pour vous. Vous pouvez accéder à IBM Cloudant directement à l'aide d'un client HTTP au lieu d'une bibliothèque client IBM Cloudant. Toutefois,
vous devez gérer l'échange et l'actualisation d'un jeton d'accès limité dans le temps à l'aide d'une clé d'API IAM avec le service de jeton IAM. Une fois qu'un jeton expire, IBM Cloudant renvoie un code de statut HTTP 401.
Versions de bibliothèques client requises
La connectivité IAM est disponible dans la dernière version de toutes les bibliothèques client prises en charge. Pour plus d'informations, voir Bibliothèques client.
Java
Le lien suivant permet d'accéder à la dernière version prise en charge de la bibliothèque IBM Cloudant Java™:
Pour découvrir un exemple utilisant le SDK « IBM Cloudant » pour « Java », consultez la documentation relative à l'API et au SDK.
Node.js
Le lien suivant mène à la dernière version prise en charge de la bibliothèque d'IBM Cloudant pour Node.js :
Pour découvrir un exemple utilisant le SDK « IBM Cloudant » pour « Node », consultez la documentation relative à l'API et au SDK.
Python
Le lien suivant mène à la dernière version prise en charge de la bibliothèque d'IBM Cloudant pour Python :
Pour découvrir un exemple utilisant le SDK « IBM Cloudant » pour « Python », consultez la documentation relative à l'API et au SDK.
Go
Le lien suivant mène à la dernière version prise en charge de la bibliothèque d'IBM Cloudant pour Go :
Pour découvrir un exemple utilisant le SDK « IBM Cloudant » pour Go, consultez la documentation relative à l'API et au SDK.
Accès à l'aide du client HTTP
IBM Cloud IAM exige qu'une clé d'API IAM soit échangée contre un jeton d'accès limité dans le temps avant d'envoyer une demande à une ressource ou à un service. Le jeton d'accès est ensuite inclus dans l'en-tête HTTP Authorization envoyée au service. Lorsque le jeton d'accès expire, le client doit en obtenir un autre du service de jeton IAM.
Comme indiqué précédemment, l'utilisation d'IBM Cloud IAM nécessite que vous échangiez d'abord une clé d'API IBM contre un jeton d'accès à durée limitée. Ensuite, vous utilisez le jeton pour vous authentifier auprès de l'API IBM Cloudant.
Exemple dans Python :
import time
import requests
API_KEY = "MxVp86XHkU82Wc97tdvDF8qM8B0Xdit2RqR1mGfVXPWz"
ACCOUNT = "76838001-b883-444d-90d0-46f89e942a15-bluemix"
def get_access_token(api_key):
"""Retrieve an access token from the IAM token service."""
token_response = requests.post(
"https://iam.cloud.ibm.com/identity/token",
data={
"grant_type": "urn:ibm:params:oauth:grant-type:apikey",
"response_type": "cloud_iam",
"apikey": api_key
},
headers={
"Accept": "application/json"
}
)
if token_response.status_code == 200:
print "Got access token from IAM"
return token_response.json()['access_token']
else:
print token_response.status_code, token_response.json()
return None
def main(api_key, account):
access_token = None
while True:
if not access_token:
access_token = get_access_token(api_key)
if access_token:
response = requests.get(
"https://{0}.cloudant.com/_all_dbs".format(account),
headers={
"Accept": "application/json",
"Authorization": "Bearer {0}".format(access_token)
}
)
print "Got Cloudant response, status code", response.status_code
if response.status_code == 401:
print "Token has expired."
access_token = None
time.sleep(1)
if __name__ == "__main__":
main(API_KEY, ACCOUNT)
Utilisation de la liste autorisée des adresses IP IAM avec Cloudant
Vous pouvez activer les restrictions d'accès par adresse IP de l'IAM lorsque vous utilisez IBM Cloudant.
Pour activer les restrictions d'accès aux adresses IP IAM, vous devez vous assurer que la liste autorisée des adresses IP Cloud Identity and Access Management (IAM) est configurée de sorte que le service IBM Cloudant puisse continuer à fonctionner. IAM est utilisé par IBM Cloudant lors de l'authentification des demandes auprès de l'API IBM Cloudant qui transmettent des données d'identification IAM et lors de l'exécution de réplications qui sont configurées pour s'authentifier à l'aide de clés d'API IAM.
Les jetons IAM peuvent être valides pendant jusqu'à 60 minutes. Cela signifie que les modifications apportées à la liste autorisée des adresses IP IAM peuvent ne pas prendre pleinement effet tant que cette période de validation n'est pas arrivée à expiration, car la liste autorisée n'est appliquée qu'au moment de la création du jeton.
Création d'une zone réseau
Pour ajouter IBM Cloudant à votre liste d'accès IAM, vous devez d'abord créer une zone réseau qui inclut le service IBM Cloudant.
Pour créer une zone réseau, procédez comme suit.
- Dans la console d' IBM Cloud, cliquez sur « **Gérer ** » > « Restrictions basées sur le contexte », puis sélectionnez « Zones réseau ».
- Cliquez sur Créer.
- Entrez un nom unique (par exemple,
cloudant-network) et, éventuellement, une description. - Sous
Reference a service, sélectionnez le type de serviceIAM Serviceset le serviceIBM Cloudant. Cliquez sur Ajouter pour associer les adresses IPIBM Cloudantà votre zone réseau. - Cliquez sur Suivant pour vérifier votre zone réseau.
- Cliquez sur Créer.
Référencement de la zone réseau dans la liste autorisée des adresses IP IAM
La zone réseau créée ci-dessus, appelée cloudant-network, peut désormais être utilisée dans votre liste autorisée d'adresses IP IAM.
- Dans la console d' IBM Cloud, cliquez sur Gérer > Accès (IAM), puis sélectionnez « Paramètres ».
- Dans la section « Compte », activez le paramètre d'accès par adresse IP.
- Dans la zone
Allowed IP addresses, ajoutez le nom de la zone réseau que vous avez créée ci-dessus (par exemple,cloudant-network). - Cliquez sur Sauvegarder.
Rôles et actions
Le tableau ci-après contient la liste complète des actions et des rôles IAM d'IBM Cloudant et indique quelles sont les actions autorisées pour chaque rôle de système IAM.
Rôles IBM Cloudant
Le tableau ci-après répertorie et décrit brièvement les rôles de service IAM disponibles pour IBM Cloudant.
| Rôle | Description |
|---|---|
Manager |
Permet d'accéder à tous les noeuds finaux et d'effectuer toutes les fonctions administratives sur une instance, par exemple, créer des bases de données, modifier la capacité, lire et écrire des données et des index et accéder au tableau de bord. |
Writer |
Permet de lire et d'écrire des données dans toutes les bases de données et dans tous les documents, mais pas de créer des index. |
Reader |
Permet de lire des données dans toutes les bases de données et dans tous les documents, mais pas d'écrire de nouveaux documents ni de créer des index. |
Monitor |
Permet de lire des noeuds finaux de surveillance, par exemple _active_tasks, et des points finaux de réplication, _scheduler. |
Checkpointer |
Permet d'écrire des documents checkpointer de _local pour la réplication. Obligatoire sur les bases de données source lors de la réplication. |
Le rôle Manager inclut toutes les actions associées aux rôles Reader et Writer et le rôle Writer inclut toutes les actions associées au rôle Reader.
Actions IBM Cloudant
Le tableau ci-après décrit les actions et les rôles IAM disponibles. Pour affiner les autorisations, vous pouvez utiliser les rôles Manager, Reader, Writer, Monitor ou Checkpointer.
Lorsque vous utilisez des rôles IAM autres que Manager, par exemple Reader, Writer, Monitor ou Checkpointer, vous devez choisir l'option Use only IAM pour éviter de fournir aux utilisateurs des données d'identification existantes offrant des droits d'accès plus importants.
| Méthode | Noeud final | Nom de l'action |
|---|---|---|
GET/PUT |
/_api/v2/db/<path:db>/_security |
cloudantnosqldb.sapi.db-security |
GET |
/_api/v2/user/capacity/throughput |
cloudantnosqldb.capacity-throughput.read |
PUT |
/_api/v2/user/capacity/throughput |
cloudantnosqldb.capacity-throughput.write |
GET |
/_api/v2/user/current/throughput |
cloudantnosqldb.current-throughput.read |
GET |
/_api/v2/user/capacity/databases |
cloudantnosqldb.account-capacity-dbs.read |
GET |
/_api/v2/user/current/databases |
cloudantnosqldb.account-current-dbs.read |
GET |
/_api/v2/user/activity_tracker/events |
cloudantnosqldb.activity-tracker-event-types.read |
POST |
/_api/v2/user/activity_tracker/events |
cloudantnosqldb.activity-tracker-event-types.write |
POST |
/_api/v2/api_keys |
cloudantnosqldb.sapi.apikeys |
GET/POST |
/_api/v2/user/config/cors/ |
cloudantnosqldb.sapi.usercors |
GET/PUT |
/_api/v2/user/plan |
cloudantnosqldb.sapi.userplan |
GET |
/_api/v2/user/ccm_diagnostics |
cloudantnosqldb.sapi.userccmdiagnostics |
GET |
/_api/v2/user/last_activity |
cloudantnosqldb.sapi.lastactivity |
GET |
/_api/v2/support/tickets/$CASEID/files/$ATTACHMENTID |
cloudantnosqldb.sapi.supportattachments |
GET/POST |
/_api/v2/support/tickets |
cloudantnosqldb.sapi.supporttickets |
GET/PUT/DELETE |
/_api/v2/support/tickets/$CASEID |
cloudantnosqldb.sapi.supporttickets |
GET |
/_api/v2/user |
cloudantnosqldb.sapi.userinfo |
GET |
/_api/v2/usage/data_volume et /_api/v2/usage/$YEAR/$MONTH |
cloudantnosqldb.sapi.usage-data-volume |
GET/HEAD |
/ | cloudantnosqldb.account-meta-info.read |
GET/HEAD |
/_active_tasks |
cloudantnosqldb.account-active-tasks.read |
GET/HEAD |
/_replicator |
cloudantnosqldb.replicator-database-info.read |
GET/HEAD |
/_replicator/$DOCUMENT |
cloudantnosqldb.replication.read |
GET/HEAD |
/_scheduler/jobs |
cloudantnosqldb.replication-scheduler.read |
GET/HEAD |
/_scheduler/docs |
cloudantnosqldb.replication-scheduler.read |
POST |
/_replicate |
cloudantnosqldb.replication.write |
POST |
/_replicator |
cloudantnosqldb.replication.write |
PUT/DELETE |
/_replicator |
cloudantnosqldb.replicator-database.create |
PUT/DELETE |
/_replicator/$DOCUMENT |
cloudantnosqldb.replication.write |
GET/HEAD |
/_up |
cloudantnosqldb.account-up.read |
PUT |
/$DATABASE/ |
cloudantnosqldb.database.create |
DELETE |
/$DATABASE |
cloudantnosqldb.database.delete |
POST |
/$DATABASE/_design_docs/queries |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_geo_info |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_info/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_design/$DOCUMENT_ID/_search_disk_size/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_design/$DOCUMENT_ID/_search_info/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_index/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_design_docs |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_design/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.any-document.read |
PUT |
/$DATABASE/_design/$DOCUMENT_ID |
cloudantnosqldb.design-document.write |
COPY |
/$DATABASE/_design/$DOCUMENT_ID |
cloudantnosqldb.design-document.write |
DELETE |
/$DATABASE/_design/$DOCUMENT_ID |
cloudantnosqldb.design-document.write |
PUT |
/$DATABASE/_design/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.design-document.write |
DELETE |
/$DATABASE/_design/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.design-document.write |
POST/DELETE |
/$DATABASE/_index/$FURTHER_PATH_PARTS |
cloudantnosqldb.design-document.write |
GET/HEAD |
/$DATABASE/_security |
cloudantnosqldb.database-security.read |
PUT |
/$DATABASE/_security |
cloudantnosqldb.database-security.write |
GET/HEAD |
/$DATABASE/_shards |
cloudantnosqldb.database-shards.read |
COPY (Dépend du type de document d'écriture.) |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.any-document.read + cloudantnosqldb.design-document.write et/ou cloudantnosqldb.local-document.write et/ou cloudantnosqldb.data-document.write |
GET |
/_membership |
cloudantnosqldb.cluster-membership.read |
POST |
/$DATABASE/_ensure_full_commit |
cloudantnosqldb.database-ensure-full-commit.execute |
PUT |
/_users |
cloudantnosqldb.users-database.create |
GET/HEAD |
/_users |
cloudantnosqldb.users-database-info.read |
DELETE |
/_users |
cloudantnosqldb.users-database.delete |
GET/HEAD |
/_users/$DOCUMENT |
cloudantnosqldb.users.read |
GET/POST |
/_users/_all_docs |
cloudantnosqldb.users.read |
GET/POST |
/_users/_changes |
cloudantnosqldb.users.read |
POST |
/_users/_missing_revs |
cloudantnosqldb.users.read |
POST |
/_users/_revs_diff |
cloudantnosqldb.users.read |
POST |
/_users/_bulk_get |
cloudantnosqldb.users.read |
PUT/DELETE |
/_users/$DOCUMENT |
cloudantnosqldb.users.write |
POST |
/_users/_bulk_docs |
cloudantnosqldb.users.write |
POST |
/_users/ |
cloudantnosqldb.users.write |
GET/HEAD |
/_uuids |
cloudantnosqldb.cluster-uuids.execute |
POST |
/$DATABASE/ |
cloudantnosqldb.data-document.write ou cloudantnosqldb.design-document.write oucloudantnosqldb.local-document.write |
POST |
/$DATABASE/_bulk_docs |
cloudantnosqldb.data-document.write et/ou cloudantnosqldb.design-document.write et/ou cloudantnosqldb.local-document.write |
PUT |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.data-document.write |
DELETE |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.data-document.write |
PUT |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.data-document.write |
DELETE |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.data-document.write |
PUT/DELETE |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.local-document.write |
COPY (Dépend du type de document d'écriture.) |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.any-document.read + cloudantnosqldb.design-document.write et/ou cloudantnosqldb.local-document.write et/ou cloudantnosqldb.data-document.write |
GET/HEAD |
/_iam_session |
cloudantnosqldb.iam-session.read |
POST |
/_iam_session |
cloudantnosqldb.iam-session.write |
DELETE |
/_iam_session |
cloudantnosqldb.iam-session.delete |
GET/HEAD |
/_session |
cloudantnosqldb.session.read |
POST |
/_session |
cloudantnosqldb.session.write |
DELETE |
/_session |
cloudantnosqldb.session.delete |
GET/HEAD |
/_all_dbs |
cloudantnosqldb.account-all-dbs.read |
POST |
/_dbs_info |
cloudantnosqldb.account-dbs-info.read |
GET |
/$DATABASE/ |
cloudantnosqldb.database-info.read |
GET/POST |
/$DATABASE/_all_docs |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_changes |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_bulk_get |
cloudantnosqldb.any-document.read |
GET/POST |
/_search_analyze |
cloudantnosqldb.account-search-analyze.execute |
POST |
/$DATABASE/_all_docs/queries |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_geo/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_search/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$VIEW/queries |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_explain/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_find/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_missing_revs |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_revs_diff |
cloudantnosqldb.any-document.read |
| Méthode | Noeud final | Nom de l'action |
|---|---|---|
GET |
/_api/v2/user/activity_tracker/events |
cloudantnosqldb.activity-tracker-event-types.read |
GET |
/_api/v2/user/capacity/databases |
cloudantnosqldb.account-capacity-dbs.read |
GET |
/_api/v2/user/current/databases |
cloudantnosqldb.account-current-dbs.read |
GET/HEAD |
/_uuids |
cloudantnosqldb.cluster-uuids.execute |
POST |
/$DATABASE/ |
cloudantnosqldb.data-document.write ou cloudantnosqldb.design-document.write oucloudantnosqldb.local-document.write |
POST |
/$DATABASE/_bulk_docs |
cloudantnosqldb.data-document.write et/ou cloudantnosqldb.design-document.write et/ou cloudantnosqldb.local-document.write |
PUT |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.data-document.write |
DELETE |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.data-document.write |
PUT |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.data-document.write |
DELETE |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.data-document.write |
PUT/DELETE |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.local-document.write |
GET/HEAD |
/_iam_session |
cloudantnosqldb.iam-session.read |
POST |
/_iam_session |
cloudantnosqldb.iam-session.write |
DELETE |
/_iam_session |
cloudantnosqldb.iam-session.delete |
GET/HEAD |
/_session |
cloudantnosqldb.session.read |
POST |
/_session |
cloudantnosqldb.session.write |
DELETE |
/_session |
cloudantnosqldb.session.delete |
GET/HEAD |
/_all_dbs |
cloudantnosqldb.account-all-dbs.read |
POST |
/_dbs_info |
cloudantnosqldb.account-dbs-info.read |
GET |
/$DATABASE/ |
cloudantnosqldb.database-info.read |
GET/POST |
/$DATABASE/_all_docs |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_changes |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_bulk_get |
cloudantnosqldb.any-document.read |
GET/POST |
/_search_analyze |
cloudantnosqldb.account-search-analyze.execute |
POST |
/$DATABASE/_all_docs/queries |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_geo/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_search/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$VIEW/queries |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_explain/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_find/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_missing_revs |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_revs_diff |
cloudantnosqldb.any-document.read |
GET/HEAD |
/ | cloudantnosqldb.account-meta-info.read |
POST |
/$DATABASE/_ensure_full_commit |
cloudantnosqldb.database-ensure-full-commit.execute |
| Méthode | Noeud final | Nom de l'action |
|---|---|---|
GET |
/_api/v2/user/activity_tracker/events |
cloudantnosqldb.activity-tracker-event-types.read |
GET |
/_api/v2/user/capacity/databases |
cloudantnosqldb.account-capacity-dbs.read |
GET |
/_api/v2/user/current/databases |
cloudantnosqldb.account-current-dbs.read |
GET/HEAD |
/_iam_session |
cloudantnosqldb.iam-session.read |
POST |
/_iam_session |
cloudantnosqldb.iam-session.write |
DELETE |
/_iam_session |
cloudantnosqldb.iam-session.delete |
GET/HEAD |
/_session |
cloudantnosqldb.session.read |
POST |
/_session |
cloudantnosqldb.session.write |
DELETE |
/_session |
cloudantnosqldb.session.delete |
GET/HEAD |
/_all_dbs |
cloudantnosqldb.account-all-dbs.read |
POST |
/_dbs_info |
cloudantnosqldb.account-dbs-info.read |
GET |
/$DATABASE/ |
cloudantnosqldb.database-info.read |
GET/POST |
/$DATABASE/_all_docs |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_changes |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/$DOCUMENT_ID/$ATTACHMENT |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_bulk_get |
cloudantnosqldb.any-document.read |
GET/POST |
/_search_analyze |
cloudantnosqldb.account-search-analyze.execute |
POST |
/$DATABASE/_all_docs/queries |
cloudantnosqldb.any-document.read |
GET/HEAD |
/$DATABASE/_design/$DOCUMENT_ID/_geo/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_search/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$VIEW/queries |
cloudantnosqldb.any-document.read |
GET/POST |
/$DATABASE/_design/$DOCUMENT_ID/_view/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_explain/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_find/$FURTHER_PATH_PARTS |
cloudantnosqldb.any-document.read |
GET |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_missing_revs |
cloudantnosqldb.any-document.read |
POST |
/$DATABASE/_revs_diff |
cloudantnosqldb.any-document.read |
GET/HEAD |
/ | cloudantnosqldb.account-meta-info.read |
| Méthode | Noeud final | Nom de l'action |
|---|---|---|
GET |
/_api/v2/usage/data_volume et /_api/v2/usage/$YEAR/$MONTH |
cloudantnosqldb.sapi.usage-data-volume |
GET |
/_api/v2/user/capacity/throughput |
cloudantnosqldb.capacity-throughput.read |
GET |
/_api/v2/user/current/throughput |
cloudantnosqldb.current-throughput.read |
GET |
/_api/v2/user/capacity/databases |
cloudantnosqldb.account-capacity-dbs.read |
GET |
/_api/v2/user/current/databases |
cloudantnosqldb.account-current-dbs.read |
GET/HEAD |
/ | cloudantnosqldb.account-meta-info.read |
GET/HEAD |
/_active_tasks |
cloudantnosqldb.account-active-tasks.read |
GET/HEAD |
/_scheduler/jobs |
cloudantnosqldb.replication-scheduler.read |
GET/HEAD |
/_scheduler/docs |
cloudantnosqldb.replication-scheduler.read |
GET/HEAD |
/_up |
cloudantnosqldb.account-up.read |
GET/HEAD |
/$DATABASE/_shards |
cloudantnosqldb.database-shards.read |
PUT/DELETE |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.local-document.write |
POST |
/_dbs_info |
cloudantnosqldb.account-dbs-info.read |
GET |
/$DATABASE/ |
cloudantnosqldb.database-info.read |
| Méthode | Noeud final | Nom de l'action |
|---|---|---|
PUT/DELETE |
/$DATABASE/_local/$DOCUMENT_ID |
cloudantnosqldb.local-document.write |
Traitement des incidents
Si vous ne parvenez pas à utiliser IAM pour vous authentifier lorsque vous envoyez des demandes à votre instance de service IBM Cloudant, vérifiez votre compte comme indiqué dans la section suivante.
Vérifiez que votre compte est activé pour IAM
Dans la partie de la présentation du tableau de bord IBM Cloudant, la "méthode d'authentification" est mentionnée sous les détails de déploiement. Vos méthodes d'authentification disponibles y sont répertoriées.