Zugriff für IBM Cloudant verwalten

IBM Cloud® Identity and Access Management (IAM) bietet einen einheitlichen Ansatz zur Verwaltung von Benutzeridentitäten, Services und der Zugriffssteuerung.

Im folgenden Text wird die Integration von IBM® Cloudant® for IBM Cloud® mit IBM Cloud Identity and Access Managementbeschrieben. Dabei werden die folgenden Themen behandelt:

  • Unterschiede zwischen traditionellen IBM Cloudant-Zugriffssteuerungsmechanismen und den IBM Cloud IAM-Zugriffssteuerungsmechanismen.
  • Vor- und Nachteile der verschiedenen Konzepte.
  • Vorgehensweise zur Verwendung von IAM in den IBM Cloudant-Clientbibliotheken über HTTP-Aufrufe.
  • Beschreibung der IAM-Aktionen und -Rollen, die in IBM Cloudant verfügbar sind.

Weitere Informationen finden Sie in einer Übersicht über IAM, die die folgenden Themen enthält:

  • Verwaltung von Benutzer- und Service-IDs.
  • Verwaltung der verfügbaren Berechtigungsnachweise.
  • Verwendung der IAM-Zugriffsrichtlinien, mit denen der Zugriff auf die IBM Cloudant-Serviceinstanzen erteilt und entzogen werden kann.

Unterschiede zwischen traditionellen IBM Cloudant-Zugriffssteuerungsmechanismen und den IAM-Zugriffssteuerungsmechanismen

Im folgenden Abschnitt finden Sie eine kurze Übersicht zu den Unterschieden zwischen den traditionellen IBM Cloudant-Zugriffssteuerungsmechanismen und den IBM Cloud IAM-Zugriffssteuerungsmechanismen.

IBM Cloud Identity and Access Management

  • Zentral verwaltetes Zugriffsmanagement für IBM Cloud.
  • Zugriffsmöglichkeit für Benutzer oder Services auf zahlreiche unterschiedliche Ressourcen mithilfe der gleichen Gruppe von Berechtigungsnachweisen (z. B. Benutzername und Kennwort oder IAM-API-Schlüssel).
  • IAM-API-Schlüsseln kann der Zugriff auf die Kontomanagementfunktionen (z. B. zum Erstellen neuer Datenbanken) erteilt werden.

Traditionelle IBM Cloudant-Zugriffssteuerungsmechanismen

  • Nur für IBM Cloudant.
  • Für den Zugriff auf die verschiedenen Serviceinstanzen sind eigene Berechtigungsnachweisgruppen erforderlich.
  • Verwendung der HTTP-Basisauthentifizierung mit Berechtigungsnachweisen, die nicht an einen bestimmten Benutzer oder Service gebunden sind.
  • IBM Cloudant-API-Schlüsseln können Berechtigungen nur auf Datenbankebene erteilt werden.

Hinweise zu API-Schlüsseln

Im vorliegenden Dokument bezieht sich die Verwendung des Begriffs 'API-Schlüssel' auf die IAM-API-Schlüssel. Für die Zugriffssteuerelemente der traditionellen Version von IBM Cloudant gibt es ebenfalls ein Konzept für API-Schlüssel. Alle Erläuterungen zu 'traditionellen IBM Cloudant-Berechtigungsnachweisen' oder 'Kombinationen aus Benutzername und Kennwort' beziehen sich auch auf IBM Cloudant-API-Schlüssel.

IAM mit IBM Cloudant aktivieren

Alle IBM Cloudant-Serviceinstanzen, die im Juli 2018 oder später bereitgestellt wurden, werden in Ressourcengruppen bereitgestellt und sind mit IBM Cloud IAM aktiviert. Optional können Sie auswählen, dass auch der traditionelle IBM Cloudant-Authentifizierungsmechanismus aktiviert werden soll. Wenn Sie eine neue IBM Cloudant-Instanz aus dem IBM Cloud-Katalog bereitstellen, wählen Sie eine der folgenden Authentifizierungsmethoden aus.

Traditionelle Berechtigungsnachweise und IAM verwenden
Dieser Modus bedeutet, dass sowohl IAM-Berechtigungsnachweise als auch traditionelle Berechtigungsnachweise für den Zugriff auf das Konto verwendet werden können. Sowohl IAM-Berechtigungsnachweisgruppen als auch traditionelle Berechtigungsnachweisgruppen werden für alle Anwendungen bereitgestellt, die über eine Bindung zum Konto und den generierten Serviceberechtigungsnachweisen verfügen.
Nur IAM verwenden
In diesem Modus werden ausschließlich IAM-Anmeldeinformationen bereitgestellt, und zwar mithilfe der Dienstbindung und der Generierung von Anmeldeinformationen.

Wenn Sie IAM-Rollen verwenden, bei denen es sich nicht um die Rolle Manager handelt, also z. B. die Rollen Reader, Writer, Monitor oder Checkpointer, müssen Sie Nur IAM verwenden verwenden, um zu vermeiden, dass Benutzer traditionelle Berechtigungsnachweise mit umfassenderen Zugriffsberechtigungen erhalten.

Richtliniendurchsetzung

IAM-Richtlinien werden hierarchisch von der höchsten Zugriffsebene bis zu den meisten Einschränkungen durchgesetzt, wobei freizügigere Richtlinien weniger freizügige Richtlinien außer Kraft setzen. Wenn ein Benutzer beispielsweise sowohl die Zugriffsrolle „ Writer “ als auch die Rolle „ Reader “ für eine Datenbank besitzt, wird die Richtlinie, die die Rolle „ Reader “ gewährt, ignoriert.

Dies gilt auch für Richtlinien auf Service-Instanz- und Datenbankebene.

  • Wenn ein Benutzer über eine Richtlinie verfügt, die ihm die Rolle „ Writer “ für eine Dienstinstanz und die Rolle „ Reader “ für eine einzelne Datenbank gewährt, wird die Richtlinie auf Datenbankebene ignoriert.
  • Wenn ein Benutzer über eine Richtlinie verfügt, die ihm die Rolle „ Reader “ für eine Dienstinstanz und die Rolle „ Writer “ für eine einzelne Datenbank gewährt, werden beide Richtlinien durchgesetzt, wobei die weitreichendere Rolle „ Writer “ für die jeweilige Datenbank Vorrang hat.

Falls es erforderlich ist, den Zugriff auf eine einzelne Datenbank (oder eine Gruppe von Datenbanken) einzuschränken, stellen Sie sicher, dass für den Benutzer oder die Service-ID keine weiteren Richtlinien auf Instanzebene gelten, indem Sie entweder die Konsole oder die Befehlszeilenschnittstelle (CLI) verwenden.

Weitere Informationen finden Sie unter Best Practices für die Organisation von Ressourcen und die Zuweisung von Zugriffsrechten.

IBM Cloudant-API-Schlüssel und Nur IAM verwenden

Die Verwendung von IBM Cloudant-API-Schlüsseln zusammen mit IAM ist zwar möglich, wird jedoch nicht empfohlen. Diese Empfehlung wird deshalb ausgesprochen, weil IBM Cloudant-API-Schlüssel und die entsprechenden Berechtigungen nicht in der IAM-Richtlinienschnittstelle angezeigt werden können und auch nicht über diese Schnittstelle verwaltet werden können, wodurch ein ganzheitliches Zugriffsmanagement nicht möglich ist.

Die Auswahl des Modus Nur IAM verwenden oder Traditionelle Berechtigungsnachweise und IAM-Berechtigungsnachweise verwenden wirkt sich auf folgende Faktoren aus:

  1. Auf die Verfügbarkeit traditioneller IBM Cloudant-Berechtigungsnachweise auf Kontoebene, mit denen Aktionen für Datenbanken und weitere Aktionen auf Kontoebene verwaltet werden können.
  2. Auf den Stil der Berechtigungsnachweise, die während der Generierung der Serviceberechtigungsnachweise bereitgestellt werden.

Insbesondere ist festzuhalten, dass IBM Cloudant-API-Schlüssel weiterhin zum Verwalten des Datenbankzugriffs eingesetzt werden können. Diese Berechtigungsnachweise müssen über die HTTP-API generiert und konfiguriert werden.

Bereitstellung über die Befehlszeile

Wenn Sie eine neue IBM Cloudant-Instanz über die Befehlszeile bereitstellen, dann müssen Sie eine Option für das Tool ibmcloud angeben. Hierzu wird der Parameter -p verwendet, mit dem die traditionellen Berechtigungsnachweise für ein Konto aktiviert oder inaktiviert werden können. Die Option wird im JSON-Format übergeben und trägt die Bezeichnung legacyCredentials.

Führen Sie den folgenden Befehl aus, um eine Instanz unter Verwendung des Modus Nur IAM verwenden (empfohlen) bereitzustellen:

ibmcloud resource service-instance-create  "Instance Name" \
    cloudantnosqldb Standard us-south \
    -p {"legacyCredentials": false}

Wenn Sie IAM-Rollen verwenden, bei denen es sich nicht um die Rolle Manager handelt, also z. B. die Rollen Reader, Writer, Monitor oder Checkpointer, müssen Sie Nur IAM verwenden verwenden, um zu vermeiden, dass Benutzer traditionelle Berechtigungsnachweise mit umfassenderen Zugriffsberechtigungen erhalten.

Führen Sie den folgenden Befehl aus, um eine Instanz unter Verwendung des Modus Traditionelle Berechtigungsnachweise und IAM-Berechtigungsnachweise verwenden bereitzustellen:

ibmcloud resource service-instance-create  "Instance Name" \
    cloudantnosqldb Standard us-south \
    -p {"legacyCredentials": true}

JSON-Beispiele für Serviceberechtigungsnachweise für beide Optionen

Die Entscheidung für den Zugriffssteuerungsmodus Nur IAM verwenden oder Traditionelle Berechtigungsnachweise und IAM verwenden wirkt sich darauf aus, wie Berechtigungsnachweise an Ihre Anwendung übergeben werden, wenn Sie Serviceberechtigungsnachweise binden und generieren. Werden die Berechtigungsnachweise in der primären IBM Cloud IAM-Schnittstelle generiert, dann werden die API-Schlüssel während der Generierung in dieser Schnittstelle angezeigt.

Sie können Berechtigungsnachweise auch über den Abschnitt 'Serviceberechtigungsnachweise' einer Serviceinstanz generieren. Durch die Verwendung dieser Methode bei der Generierung von Serviceberechtigungsnachweisen wird ein JSON-BLOB für Serviceberechtigungsnachweise erstellt, das mit allen Details, die für den Zugriff auf die Serviceinstanz erforderlich sind, in Anwendungen eingefügt werden kann.

Als nächstes wird gezeigt, wie das JSON-Element für die Serviceberechtigungsnachweise dargestellt wird und welche Bedeutung die einzelnen Werte haben.

Wenn Sie Nur IAM verwenden auswählen, dann enthalten die generierten Serviceberechtigungsnachweise nur IAM-Werte und werden wie folgt dargestellt.

{
  "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"
}

Die einzelnen Werte im vorherigen JSON-Beispiel müssen unter Verwendung der folgenden Definitionen interpretiert werden:

apikey
IAM-API-Schlüssel.
iam_apikey_description
Beschreibung des IAM-API-Schlüssels.
iam_apikey_name
ID des IAM-API-Schlüssels.
iam_role_crn
Die IAM-Rolle, die dem IAM-API-Schlüssel zugeordnet wurde.
iam_serviceid_crn
Die CRN der Service-ID.
url
IBM Cloudant-Service-URL.
username
Der interne IBM Cloudant-Kontoname.

Wenn Sie Traditionelle Berechtigungsnachweise und IAM verwenden auswählen, enthalten die generierten Serviceberechtigungsnachweise sowohl IAM-Berechtigungsnachweise als auch traditionelle Berechtigungsnachweise, was der Darstellung der Werte im folgenden Beispiel entspricht.

{
  "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"
}

Die einzelnen Werte im vorherigen JSON-Beispiel müssen unter Verwendung der folgenden Definitionen interpretiert werden:

apikey
IAM-API-Schlüssel.
host
IBM Cloudant-Service-Hostname.
iam_apikey_description
Beschreibung des IAM-API-Schlüssels.
iam_apikey_name
ID des IAM-API-Schlüssels.
iam_role_crn
Die IAM-Rolle, die dem IAM-API-Schlüssel zugeordnet wurde.
iam_serviceid_crn
Die CRN der Service-ID.
password
Das Kennwort des traditionellen Berechtigungsnachweises von IBM Cloudant.
port
IBM Cloudant-Service-Port.
url
IBM Cloudant-Service-URL, einschließlich der eingebetteten traditionellen Berechtigungsnachweise von IBM Cloudant.
username
Der Benutzername des traditionellen Berechtigungsnachweises von IBM Cloudant.

Beachten Sie, dass die enthaltenen Werte für username und password immer den IAM-Managerberechtigungsnachweisen entsprechen. Daher ist die Verwendung von Traditionelle Berechtigungsnachweise und IAM verwenden unsicher, wenn diese Option gemeinsam mit den IAM-Rollen Reader, Writer, Monitor oder Checkpointer verwendet wird.

Muss ich Nur IAM verwenden oder Traditionelle Berechtigungsnachweise und IAM-Berechtigungsnachweise verwenden benutzen?

Sofern möglich, sollten Sie Nur IAM verwenden benutzen. Die wichtigsten Vorteile der Verwendung von IBM Cloud IAM sind in der folgenden Liste aufgeführt:

  • Management des Zugriffs auf IBM Cloudant mithilfe der IBM Cloud-Standardtools anstatt mit einer Kombination aus IBM Cloud-spezifischen und IBM Cloudant-spezifischen Tools für das Berechtigungsnachweismanagement.
  • Berechtigungsnachweise können auf einfache Weise widerrufen oder turnusmäßig gewechselt werden, wenn Sie mit IBM Cloud IAM arbeiten.

Im Folgenden werden weitere Vor- und Nachteile der beiden Ansätze erläutert.

Wenn Sie IAM-Rollen verwenden, bei denen es sich nicht um die Rolle Manager handelt, also z. B. die Rollen Reader, Writer, Monitor oder Checkpointer, müssen Sie Nur IAM verwenden verwenden, um zu vermeiden, dass Benutzer traditionelle Berechtigungsnachweise mit umfassenderen Zugriffsberechtigungen erhalten.

Vor- und Nachteile der beiden Zugriffssteuerungsmechanismen

Insgesamt lässt sich festhalten, dass IBM Cloud IAM das empfohlene Authentifizierungsmodell darstellt. Allerdings birgt dieser Ansatz auch Nachteile, besonders dann, wenn bereits eine Anwendung vorhanden ist oder wenn Sie keine von IBM Cloudant unterstützte Clientbibliothek verwenden können.

Vorteile des IAM-Modus

  • Zugriffsmanagement für zahlreiche Services über eine Schnittstelle.
  • Möglichkeit zum globalen Entziehen des Zugriffs für einen Benutzer.
  • API-Schlüssel auf Kontoebene unter Verwendung von Service-IDs.
  • Einfacher turnusmäßiger Wechsel der Berechtigungsnachweise.
  • Activity Tracker-Protokolle zur Erfassung einzelner Personen und Services.
  • Föderation von IAM mit anderen Identitätssystemen wie z. B. den LDAP-Repositorys von Unternehmen.
  • Differenzierte Berechtigungen (z. B. Reader, Writer, Monitor oder Checkpointer).

Nachteile des IAM-Modus

  • Wenn Sie nicht die von IBM Cloudant unterstützten Bibliotheken verwenden, müssen voraussichtlich Anwendungsänderungen durchgeführt werden, um die API-Schlüssel und Zugriffstokens von IAM verwenden zu können.
  • Einige Endpunkte sind nicht verfügbar. Weitere Informationen finden Sie unter Nicht verfügbare Endpunkte.
  • Keine Möglichkeit zur Angabe einer Datenbank als 'öffentlich', sodass für den Zugriff kein autorisierter Benutzer erforderlich ist.

Vorteile des traditionellen Modus

  • Keine Notwendigkeit zum Ändern vorhandener Anwendungen oder Clientbibliotheksabhängigkeiten.

Nachteile des traditionellen Modus

  • Separates Management von IBM Cloudant-Berechtigungsnachweisen, sodass kein vollständiger Überblick über den gesamten Zugriff in einer zentralen Schnittstelle besteht.

IAM-Richtlinien auf Datenbankebene

IAM-Richtlinien können definiert werden, um den Zugriff auf einzelne Datenbanken oder auf Datenbanken, die einem Platzhaltermuster entsprechen, zu beschränken.

Um eine Datenbank anzusteuern, setzen Sie das Attribut Resource Type auf " database. Es stehen zwei Operatoren zur Verfügung:

IAM-Operatoren auf Datenbankebene
Operator Beschreibung
string equals stimmt mit einem URL Datenbanknamen genau überein.
string matches Suche mithilfe eines Mehrzeichen-Platzhalters (*), der auf eine beliebige Folge von null oder mehr Zeichen passt, eines Einzeichen-Platzhalters (?), der auf ein beliebiges einzelnes Zeichen passt, oder beider.

Datenbanknamen sollten im Feld "Ressourcen-ID" der Richtlinie URL werden, mit Ausnahme von Schrägstrichen /. Dies gilt nicht für Platzhalterzeichen in der Richtlinie.

Beachten Sie, dass eine Richtlinie auf Instanzebene erstellt wird, wenn Sie die Felder „Ressourcentyp“ oder „Ressourcen-ID“ leer lassen.

Beispiele

Beispiele für IAM-Operatoren auf Datenbankebene
Beschreibung Attribut Operator Wert
datenbanken mit dem Namen ' movies Resource Type string equals database
Resource ID string equals movies
datenbanken, die mit " movies beginnen Resource Type string equals database
Resource ID string matches movies*
datenbanken mit dem Namen ' movies+new Resource Type string equals database
Resource ID string equals movies%2Bnew
datenbanken, die mit " movies+* beginnen Resource Type string equals database
Resource ID string matches movies%2B*
datenbanken mit dem Namen ' movies/new Resource Type string equals database
Resource ID string equals movies/new

Replikationsjob ausschließlich mit IAM-Berechtigungsnachweisen erstellen

Befolgen Sie diese Anweisungen, um IAM-API-Schlüssel zu generieren, das Trägertoken zu generieren, die Datenbank _replicator zu erstellen und den Replikationsjob zu erstellen.

IAM-API-Schlüssel für Quelle und Ziel und einen für IBM Cloudant-API-Zugriff generieren

In dieser Übung werden die ersten beiden API-Schlüssel erstellt, sodass die beiden Instanzen während des Replikationsprozesses miteinander kommunizieren können. Den dritten API-Schlüssel benötigt der Benutzer für den Zugriff auf die IBM Cloudant-API, zum Erstellen der Datenbank _replicator und anschließenden Hinzufügen des Replikationsdokuments.

Führen Sie die folgenden Schritte aus, um IAM-API-Schlüssel und den API-Zugriff für IBM Cloudant zu generieren. Sie müssen die Berechtigungsnachweise, die in den folgenden Schritten angefordert werden, aufschreiben, um mit dem Beispiel fortfahren zu können.

Stellen Sie sicher, dass Sie die angegebene Instanz auswählen, entweder die Quelle oder das Ziel.

  1. Melden Sie sich bei cloud.ibm.com an.

  2. Wählen Sie in der Ressourcenliste die Option Services und Ihre Quelleninstanz aus.

    1. Klicken Sie auf Serviceberechtigungsnachweise und dann auf Neuer Berechtigungsnachweis.

    2. Benennen Sie den neuen Berechtigungsnachweis replicator-source und wählen Sie die Rolle 'Manager' aus.

    3. Klicken Sie auf Hinzufügen und notieren Sie den API-Schlüssel (apikey), der unter 'Berechtigungsnachweise anzeigen' in der Spalte 'Aktionen' angegeben ist.

  3. Wiederholen Sie die Schritte 2 bis 2.c für die Zielinstanz.

    1. Erstellen Sie einen Berechtigungsnachweis mit dem Namen replicator-target mit der Rolle 'Manager'.

    2. Notieren Sie sich den IAM-API-Schlüssel, der unter 'Berechtigungsnachweise anzeigen' in der Spalte 'Aktionen' angegeben ist.

  4. Wählen Sie die Quelleninstanz aus und klicken Sie auf Serviceberechtigungsnachweise und Neuer Berechtigungsnachweis.

    1. Benennen Sie den neuen Berechtigungsnachweis apiaccess und wählen Sie die Rolle 'Manager' aus.

    2. Notieren Sie sich den tatsächlichen IAM-API-Schlüssel, der unter 'Berechtigungsnachweise anzeigen' in der Spalte 'Aktionen' angegeben ist.

  5. Notieren Sie die URLs der Quellen- und Zielinstanz.

Je nach Ihrem Arbeitsablauf können Sie anstelle der Erstellung von Anmeldedaten auf Service-Ebene (Schritt 4) einen persönlichen IAM-API-Schlüssel verwenden, wie unter „API-Schlüssel erstellen“ beschrieben.

Sie können diese Schritte auch über die Befehlszeile ausführen, indem Sie die CLI-Toolkette „ IBM Cloud “ verwenden.

Trägertoken für die Authentifizierung bei der IBM Cloudant-API generieren

In Schritt 4.bhaben Sie den Schlüssel apiaccess notiert. Verwenden Sie diesen Schlüssel jetzt:

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"

Der Schlüssel apiaccess gibt die folgenden Informationen zurück (verkürzt):

{
   "access_token": "eyJraWQiOiIyMDE5MD...tIwkCO9A",
   "refresh_token": "ReVbNrHo3UA38...mq67g",
   "token_type": "Bearer",
   "expires_in": 3600,
   "expiration": 1566313064,
   "scope": "ibm openid"
}

Erstellen Sie eine Umgebungsvariable, um sich Eingabe zu ersparen, indem Sie den Wert unter dem Schlüssel access_token in den Antwortdaten verwenden:

export TOK="Bearer eyJraWQiOiIyMDE5MD...tIwkCO9A"

Datenbank _replicator auf der Quellenseite erstellen

'URL' ist die Quelleninstanz-URL, die Sie zuvor in Schritt 4.b notiert haben.

curl -k -X PUT \
     -H"Content-type: application/json" \
     -H'Authorization: '"$TOK"'' \
     'https://d43caf1b-e2c8-4d3e-9b85-1d04839fa68f-bluemix.cloudant.com/_replicator'

Beispielergebnis:

{"ok": "true"}

Replikationsjob erstellen

Erstellen Sie eine Datei mit dem Namen data.json, die die folgenden Informationen enthält. Die beiden Schlüssel sind der Quellen- und der Ziel-API-Schlüssel, die zu Anfang erstellt wurden, sowie die Quellen- und die Zielinstanz-URL mit hinzugefügten Datenbanknamen.

{
  "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
}

Schreiben Sie jetzt ein Replikationsdokument mit dem Namen source_dest in die Datenbank _replicator der Quelleninstanz.

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

Beispielergebnis:

{"ok":true,"id":"source_dest","rev":"1-89b01e42968acd5944ed657b87c49f0c"}

Traditionelle IBM Cloudant-Berechtigungsnachweise von einer Instanz entfernen

IBM Cloud IAM ist das empfohlene Authentifizierungsmodell. Aus Sicherheitsgründen können Sie anfordern, dass die traditionellen IBM Cloudant-Berechtigungsnachweise entfernt werden, sodass nur die IAM-Authentifizierung für die Instanz verwendet werden kann. Der korrekte Prozess zum Entfernen von traditionellen Berechtigungsnachweisen besteht aus den folgenden Schritten:

  1. Stellen Sie sicher, dass die IBM Cloudant-Instanz über eine aktivierte IAM-Authentifizierung verfügt.

  2. Aktualisieren Sie Ihre Anwendung so, dass anstelle der traditionellen IBM Cloudant-Authentifizierung die IAM-Authentifizierung verwendet wird.

  3. Generieren Sie bei Bedarf neue Serviceberechtigungsnachweise.

  4. Öffnen Sie einen neuen IBM Cloud-Supportfall, der das Entfernen der traditionellen IBM Cloudant-Berechtigungsnachweise für Ihre Instanz anfordert. Geben Sie den Benutzernamen der Instanz wie in den Serviceberechtigungsnachweisen dargestellt an. Weitere Informationen finden Sie unter Serviceberechtigungsnachweise suchen.

  5. Wenn der Support geantwortet hat, dass die traditionellen Berechtigungsnachweise entfernt wurden, funktioniert keiner der Serviceberechtigungsnachweise mehr, die vor dem Entfernen erstellt wurden und die Details des traditionellen Benutzernamens und des traditionellen Kennworts enthalten. Es wird empfohlen, alle diese Einträge für Serviceberechtigungsnachweise zu entfernen.

Anforderungen an Instanzen mithilfe von IAM-Berechtigungsnachweisen absetzen

Im folgenden Abschnitt wird beschrieben, wie IBM Cloudant mit Serviceinstanzen über die IAM-Authentifizierung verwendet werden kann. Dabei wird auf die Details aus den JSON-Beispielen für Serviceberechtigungsnachweise für die einzelnen Optionen Bezug genommen.

Bei IBM Cloud IAM muss ein IAM-API-Schlüssel gegen ein Zugriffstoken mit zeitlich begrenzter Gültigkeit ausgetauscht werden, bevor eine Anforderung an eine Ressource oder einen Service abgesetzt werden kann. Das Zugriffstoken wird daraufhin in den HTTP-Header für die Berechtigung (Authorization) des Service eingebunden. Wenn das Zugriffstoken abläuft, muss die konsumierende Anwendung über den IAM-Token-Service ein neues Token anfordern. Weitere Informationen finden Sie in der Dokumentation unter Bezug eines IAM-Tokens für „ IBM Cloud “ mithilfe eines API-Schlüssels.

Die offiziellen IBM Cloudant-Clientbibliotheken dienen zum Anfordern eines Tokens über einen API-Schlüssel. Sie können auf IBM Cloudant direkt über einen HTTP-Client statt über eine IBM Cloudant-Clientbibliothek zugreifen. Der Austausch und die Aktualisierung eines Zugriffstokens mit zeitlich begrenzter Gültigkeit muss jedoch mithilfe eines IAM-API-Schlüssels über den IAM-Token-Service erfolgen. Nach Ablauf eines Tokens gibt IBM Cloudant den HTTP-Statuscode 401 zurück.

Erforderliche Clientbibliotheksversionen

IAM-Konnektivität ist im neuesten Release aller unterstützten Clientbibliotheken verfügbar. Weitere Informationen finden Sie unter Clientbibliotheken.

Java

Unter dem folgenden Link finden Sie die aktuellste unterstützte Version der Bibliothek „ IBM Cloudant “ ( Java™ ):

Ein Beispiel für die Verwendung des „ IBM Cloudant “-SDK für „ Java “ finden Sie in der API- und SDK-Dokumentation.

Node.js

Der folgende Link stellt die neueste unterstützte Version der IBM Cloudant Node.js-Bibliothek bereit:

Ein Beispiel für die Verwendung des „ IBM Cloudant “-SDK für „ Node “ finden Sie in der API- und SDK-Dokumentation.

Python

Über folgenden Link haben Sie Zugriff auf die neueste unterstützte Version der IBM Cloudant Python-Bibliothek:

Ein Beispiel für die Verwendung des „ IBM Cloudant “-SDK für „ Python “ finden Sie in der API- und SDK-Dokumentation.

Los

Über folgenden Link haben Sie Zugriff auf die neueste unterstützte Version der IBM Cloudant Go-Bibliothek:

Ein Beispiel für die Verwendung des „ IBM Cloudant “-SDKs für Go finden Sie in der API- und SDK-Dokumentation.

Zugriff über HTTP-Client durchführen

Bei IBM Cloud IAM muss ein IAM-API-Schlüssel gegen ein Zugriffstoken mit zeitlich begrenzter Gültigkeit ausgetauscht werden, bevor eine Anforderung an eine Ressource oder einen Service abgesetzt werden kann. Das Zugriffstoken wird daraufhin in den HTTP-Header für die Berechtigung (Authorization) des Service eingebunden. Läuft die Gültigkeit des Zugriffstokens ab, dann muss der Kunde über den IAM-Token-Service ein neues Token anfordern.

Wie bereits erwähnt, müssen Sie, wenn Sie IBM Cloud IAM verwenden, zuerst einen IBM API-Schlüssel gegen ein Zugriffstoken mit zeitlich begrenzter Gültigkeit austauschen. Danach verwenden Sie das Token, um sich gegenüber der IBM Cloudant-API zu authentifizieren.

Im Folgenden ist ein Python-Beispiel aufgeführt:

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)

IAM-IP-Zulassungsliste mit Cloudant verwenden

Sie können die IAM-Zugriffsbeschränkungen für IP-Adressen aktivieren, wenn Sie „ IBM Cloudant “ verwenden.

Um Zugriffsbeschränkungen für IAM-IP-Adressen zu aktivieren, müssen Sie sicherstellen, dass die IP-Zulassungsliste von Cloud Identity and Access Management (IAM) so konfiguriert ist, dass der Service IBM Cloudant weiterhin funktionieren kann. IAM wird von IBM Cloudant verwendet, wenn Anforderungen an die API IBM Cloudant authentifiziert werden, die IAM-Berechtigungsnachweise übergeben, und wenn Replikationen ausgeführt werden, die für die Authentifizierung mit IAM-API-Schlüsseln konfiguriert sind.

IAM-Tokens können bis zu 60 Minutengültig sein. Dies bedeutet, dass Änderungen an der IAM-IP-Zulassungsliste erst nach Ablauf dieses Validierungszeitraums vollständig wirksam werden, da die Zulassungsliste nur bei der Tokenerstellung durchgesetzt wird.

Netzzone erstellen

Um IBM Cloudant zu Ihrer IAM-Zugriffslistehinzuzufügen, müssen Sie zuerst eine Netzzone erstellen, die den Service IBM Cloudant enthält.

Führen Sie zum Erstellen einer Netzzone die folgenden Schritte aus.

  1. Klicken Sie in der „ IBM Cloud “-Konsole auf „Verwalten“ > „Kontextbasierte Einschränkungen“ und wählen Sie „Netzwerkzonen“ aus.
  2. Klicken Sie auf Erstellen.
  3. Geben Sie einen eindeutigen Namen (z. B. cloudant-network) und optional eine Beschreibung ein.
  4. Wählen Sie unter Reference a service den Servicetyp IAM Services und den Service IBM Cloudant aus. Klicken Sie auf Hinzufügen, um die IBM Cloudant-IP-Adressen Ihrer Netzzone zuzuordnen.
  5. Klicken Sie auf Weiter, um Ihre Netzzone zu überprüfen.
  6. Klicken Sie auf Erstellen.

Verweis auf die Netzzone in der IAM-IP-Zulassungsliste

Die oben erstellte Netzzone mit dem Namen cloudant-network kann jetzt in Ihrer IAM IP-Zulassungslisteverwendet werden.

  1. Klicken Sie in der „ IBM Cloud “-Konsole auf „Verwalten“ > „Zugriff“ (IAM) und wählen Sie „Einstellungen“ aus.
  2. Aktivieren Sie im Bereich „Konto“ die Einstellung für den Zugriff über IP-Adresse.
  3. Fügen Sie im Feld Allowed IP addresses den Namen der zuvor erstellten Netzzone hinzu (z. B. cloudant-network).
  4. Klicken Sie auf Speichern.

Rollen und Aktionen

Die folgenden Tabellen enthalten eine vollständige Liste der Rollen und Aktionen von IBM Cloudant IAM sowie eine Zuordnung der Aktionen, die für die einzelnen IAM-Systemrollen zulässig sind.

IBM Cloudant-Rollen

In der folgenden Tabelle sind die verfügbaren IAM-Servicerollen für IBM Cloudant und eine kurze Beschreibung der einzelnen Rollen aufgeführt.

IAM-Dienstrollen für IBM Cloudant
Rolle Beschreibung
Manager Umfasst den Zugriff auf alle Endpunkte und die Ausführung aller Verwaltungsfunktionen für eine Instanz, wie z. B. das Erstellen von Datenbanken, das Ändern der Kapazität, das Lesen und Schreiben von Daten und Indizes sowie den Zugriff auf das Dashboard.
Writer Berechtigung zum Lesen und Schreiben in alle Datenbanken und Dokumente, aber nicht zum Erstellen von Indizes.
Reader Berechtigung zum Lesen aller Datenbanken und Dokumente, aber nicht zum Schreiben neuer Dokumente oder Erstellen von Indizes.
Monitor Berechtigung zum Lesen von Überwachungsendpunkten, wie z. B. _active_tasks, und _scheduler-Replikationsendpunkten.
Checkpointer Berechtigung zum Schreiben von checkpointer-Dokumenten der Rolle 'Checkpointer-Beauftragter (_local). Erforderlich für Quellendatenbanken während der Replikation.

Die Rolle 'Manager' umfasst alle Aktionen der Rollen 'Leseberechtigter' und 'Schreibberechtigte' und 'Schreibberechtigter' alle Aktionen von 'Leseberechtigter enthält.

IBM Cloudant-Aktionen

In der folgenden Tabelle werden die verfügbaren IAM-Aktionen und -Rollen beschrieben. Für eine differenzierte Autorisierung können Sie die Rollen Manager, Reader, Writer, Monitor oder Checkpointer verwenden.

Wenn Sie IAM-Rollen verwenden, bei denen es sich nicht um die Rolle Manager handelt, also z. B. die Rollen Reader, Writer, Monitor oder Checkpointer, müssen Sie Nur IAM verwenden verwenden, um zu vermeiden, dass Benutzer traditionelle Berechtigungsnachweise mit umfassenderen Zugriffsberechtigungen erhalten.

Aktionen und Mapping für die Rolle Manager
Methode Endpunkt Aktionsname
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 und /_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 (Hängt vom Dokumenttyp zum Schreiben ab.) /$DATABASE/$DOCUMENT_ID cloudantnosqldb.any-document.read + cloudantnosqldb.design-document.write oder cloudantnosqldb.local-document.write oder 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 oder cloudantnosqldb.design-document.write oder cloudantnosqldb.local-document.write
POST /$DATABASE/_bulk_docs cloudantnosqldb.data-document.write oder cloudantnosqldb.design-document.write oder 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 (Hängt vom Dokumenttyp zum Schreiben ab.) /$DATABASE/_local/$DOCUMENT_ID cloudantnosqldb.any-document.read + cloudantnosqldb.design-document.write oder cloudantnosqldb.local-document.write oder 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
Aktionen und Zuordnungen für die Rolle des Verfassers
Methode Endpunkt Aktionsname
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 oder cloudantnosqldb.design-document.write oder cloudantnosqldb.local-document.write
POST /$DATABASE/_bulk_docs cloudantnosqldb.data-document.write oder cloudantnosqldb.design-document.write oder 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
Aktionen und Zuordnungen für die Rolle Leser
Methode Endpunkt Aktionsname
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
Aktionen und Mapping für die Rolle Monitor
Methode Endpunkt Aktionsname
GET /_api/v2/usage/data_volume und /_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
Aktionen und Zuordnungen für die Rolle Checkpointer
Methode Endpunkt Aktionsname
PUT/DELETE /$DATABASE/_local/$DOCUMENT_ID cloudantnosqldb.local-document.write

Nicht verfügbare Endpunkte

Die folgenden Endpunkte stehen für Anforderungen, die mit IAM autorisiert wurden, nicht zur Verfügung:

  • HTTP-Rewrite-Handler - /db/_design/design-doc/_rewrite/path.

Obwohl Entwurfsdokumente möglicherweise Rewrite-Handler enthalten, können diese von Benutzern nicht aufgerufen werden.

  • Aktualisierungshandler - POST /db/_design/ddoc/_update/func.

Obwohl Entwurfsdokumente möglicherweise Update-Funktionen enthalten, können diese von Benutzern nicht aufgerufen werden.

Fehlerbehebung

Wenn Sie Probleme bei der Authentifizierung mit IAM haben, wenn Sie Anforderungen an Ihre IBM Cloudant-Serviceinstanz absetzen, überprüfen Sie Ihr Konto, wie im nächsten Abschnitt beschrieben.

IAM-Fähigkeit Ihres Kontos sicherstellen

Im Abschnitt 'Übersicht' des IBM Cloudant-Dashboards ist die Authentifizierungsmethode unter den Bereitstellungsdetails aufgeführt. Ihre verfügbaren Authentifizierungsmethoden sind dort aufgelistet.