IBM Cloud Docs
HMAC-Berechtigungsnachweise verwenden

HMAC-Berechtigungsnachweise verwenden

HMAC-Berechtigungsnachweise bestehen aus einem Paar aus Zugriffsschlüssel und geheimem Schlüssel für die Verwendung mit S3-compatible Tools und Bibliotheken, für die eine Authentifizierung erforderlich ist.

Definierte HMAC-Berechtigungsnachweise

Die IBM Cloud® Object Storage-API ist eine REST-basierte API für das Lesen und Schreiben von Objekten. Sie verwendet IBM Cloud® Identity and Access Management für die Authentifizierung und Berechtigung und unterstützt eine Untergruppe der S3-API für die einfache Migration von Anwendungen auf IBM Cloud.

HMAC-Berechtigungsnachweise in der Konsole erstellen

Benutzer können eine Gruppe von HMAC-Berechtigungsnachweisen als Teil eines Serviceberechtigungsnachweises erstellen, indem sie die Include HMAC Credential während der Berechtigungsnachweiserstellung in der Konsole auf On setzen. Abbildung 1 zeigt die Option zum Festlegen des HMAC-Parameters durch Auswahl von "Erweiterte Optionen".

HMAC-Einstellung aus den erweiterten Optionen
enthält HMAC-Berechtigungsnachweis

Nachdem der Berechtigungsnachweis erstellt worden ist, wird der HMAC-Schlüssel in das Feld cos_hmac_keys eingebunden. Diese HMAC-Schlüssel werden dann einer Service-ID zugeordnet und können zum Zugreifen auf alle Ressourcen oder Operationen verwendet werden, auf die durch die Rolle der Service-ID der Zugriff zugelassen wird.

Beim Erstellen eines Serviceberechtigungsnachweises kann für die Rolle der Wert None angegeben werden. Dadurch wird die Erstellung unbeabsichtigter oder unnötiger IAM-Zugriffsrichtlinien verhindert. Alle Zugriffsrichtlinien für die zugeordnete Service-ID müssen über die IAM-Konsole oder APIs verwaltet werden.

HMAC-Berechtigungsnachweise über die Befehlszeilenschnittstelle erstellen

Sie können Ihre Berechtigungsnachweise auch über die Befehlszeilenschnittstelle IBM Cloud® Object Storage erstellen. Sie müssen die IBM Cloud Platform Command Line Instructions bereits installiert haben, bevor Sie das Beispiel verwenden können.

ibmcloud resource service-key-create <key-name-without-spaces> Writer --instance-name "<instance name--use quotes if your instance name has spaces>" --parameters '{"HMAC":true}'

Ein Beispiel für HMAC-Berechtigungsnachweise

Wenn Sie die Ergebnisse des generierten Schlüssels speichern möchten, können Sie > file.skey an das Ende des Beispiels anfügen. Für die Zwecke dieses Instruktionssatzes müssen Sie lediglich die Überschrift cos_hmac_keys mit den untergeordneten Schlüsseln access_key_id und secret_access_key finden.

    cos_hmac_keys:
        access_key_id:      7exampledonotusea6440da12685eee02
        secret_access_key:  8not8ed850cddbece407exampledonotuse43r2d2586

HMAC-Berechtigungsnachweise als Umgebungsvariablen definieren

Nachdem Sie Ihre Berechtigungsnachweise erstellt haben, können Sie sie als Umgebungsvariablen festlegen (die Anweisungen, die für das jeweilige Betriebssystem spezifisch sind). In Beispiel 3 enthält ein Script .bash_profile beispielsweise die Schlüssel COS_HMAC_ACCESS_KEY_ID und COS_HMAC_SECRET_ACCESS_KEY, die beim Starten einer Shell exportiert und in der Entwicklung verwendet werden.

export COS_HMAC_ACCESS_KEY_ID="7exampledonotusea6440da12685eee02"
export COS_HMAC_SECRET_ACCESS_KEY="8not8ed850cddbece407exampledonotuse43r2d2586"

Nächste Schritte

Beachten Sie, dass bei Verwendung von HMAC-Berechtigungsnachweisen für die Erstellung von Signaturen, die mit direkten Aufrufen der REST-API verwendet werden sollen, zusätzliche Header erforderlich sind:

  1. Alle Anforderungen müssen einen Header x-amz-date mit der Datumsangabe im Format %Y%m%dT%H%M%SZ besitzen.
  2. Jede Anfrage, die eine Nutzlast enthält (Hochladen von Objekten, Löschen mehrerer Objekte usw.), muss einen " x-amz-content-sha256 mit einem SHA256 des Nutzlastinhalts enthalten.
  3. ACLs (mit Ausnahme von public-read) werden nicht unterstützt.

Es werden gegenwärtig nicht alle S3-kompatiblen Tools unterstützt. Manche Tools versuchen bei der Erstellung von Buckets andere ACLs als public-read festzulegen. Die Erstellung von Eimern mit diesen Werkzeugen schlägt fehl. Wenn eine " PUT bucket mit einem nicht unterstützten ACL-Fehler fehlschlägt, verwenden Sie zunächst die Konsole, wie in den ersten Schritten mit IBM Cloud Object Storage gezeigt, um den Bucket zu erstellen, und konfigurieren Sie dann das Tool, um Objekte in diesem Bucket zu lesen und zu schreiben. Tools, die ACLs für Schreibvorgänge für Objekte festlegen, werden derzeit nicht unterstützt.