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".

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:
- Alle Anforderungen müssen einen Header
x-amz-date
mit der Datumsangabe im Format%Y%m%dT%H%M%SZ
besitzen. - 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. - 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.