Benutzer und Zugriffsschlüssel verwalten
Jeder Hikube-Bucket kann mehrere S3-Benutzer haben, jeder mit seinem eigenen Schlüsselpaar und seinem Recht (Read-only oder Read / Write). Diese Anleitung erklärt, wie Sie diese Benutzer in der Hikube-Konsole verwalten und die gängigen S3-Clients konfigurieren (AWS CLI, MinIO Client, rclone).
Voraussetzungen
- Ein in Ihrem Projekt erstellter Bucket (siehe Schnellstart) im Status Ready
- Ein oder mehrere installierte S3-Clients: AWS CLI, mc (MinIO Client) oder rclone
Das Zugriffsmodell verstehen
- Ein Bucket kann mehrere Benutzer haben; jeder hat seine eigene Access Key ID und seinen Secret Access Key.
- Die Schlüssel eines Benutzers gewähren nur Zugriff auf diesen Bucket.
- Der tatsächliche S3-Name des Buckets und der Endpunkt sind allen seinen Benutzern gemeinsam; sie werden in der Karte Access & Configuration auf der Seite des Buckets angezeigt.
- Der geheime Schlüssel wird nur einmal angezeigt, bei der Erstellung des Benutzers.
Einen Benutzer erstellen
- Öffnen Sie Infrastructure → S3 Buckets und klicken Sie dann auf den Bucket.
- Klicken Sie in der Karte Users & Access auf Add User.
- Im Fenster New User:
- Geben Sie den Username ein (3 bis 16 Zeichen: Kleinbuchstaben, Ziffern und Bindestriche; beginnt mit einem Buchstaben und endet mit einem Buchstaben oder einer Ziffer; einige Namen sind reserviert, wie
admin,rootoderpostgres); - Haken Sie Read-only access an, wenn der Benutzer die Objekte nur lesen soll.
- Geben Sie den Username ein (3 bis 16 Zeichen: Kleinbuchstaben, Ziffern und Bindestriche; beginnt mit einem Buchstaben und endet mit einem Buchstaben oder einer Ziffer; einige Namen sind reserviert, wie
- Klicken Sie auf Create User.
Das Fenster Generated Credentials zeigt S3 Bucket (den tatsächlichen S3-Namen, bucket-…), S3 Endpoint, Access Key ID und Secret Access Key an. Ist der S3-Name noch nicht bekannt, zeigt das Fenster an seiner Stelle „The S3 name will be available in a few moments, on the bucket page.“ an: Entnehmen Sie ihn danach der Karte Access & Configuration.
Kopieren Sie diese Werte, bevor Sie auf I have saved these keys klicken: Der geheime Schlüssel kann danach nicht wiederhergestellt werden.
Das Recht eines Benutzers ändern
- Öffnen Sie in der Karte Users & Access das Aktionsmenü des Benutzers.
- Wählen Sie Edit access.
- Setzen Sie den Haken bei Read-only access, um den Benutzer auf Lesen zu beschränken, oder entfernen Sie ihn, um dem Benutzer wieder Lese- und Schreibzugriff zu geben, und klicken Sie dann auf Save changes.
Die Meldung Access updated bestätigt die Änderung, und die Spalte Access der Tabelle zeigt Read-only oder Read / Write an. Die Schlüssel des Benutzers ändern sich nicht.
Schlüssel erneuern
Die Konsole bietet keine Rotation der Schlüssel eines bestehenden Benutzers an. Um Schlüssel zu erneuern (Verlust des geheimen Schlüssels, Verdacht auf ein Leck):
- Erstellen Sie einen neuen Benutzer mit demselben Recht und rufen Sie seine Schlüssel ab.
- Aktualisieren Sie Ihre Anwendungen mit den neuen Schlüsseln.
- Löschen Sie den alten Benutzer: Aktionsmenü → Delete, dann bestätigen.
Die S3-Clients konfigurieren
Ersetzen Sie in den folgenden Beispielen:
<endpoint>durch den Endpoint, mit vorangestelltemhttps://(zum Beispielhttps://prod.s3.hikube.cloud);<bucket>durch den S3-Bucket name, der unter Access & Configuration angezeigt wird;<access-key>und<secret-key>durch die Schlüssel des Benutzers.
AWS CLI
Konfigurieren Sie ein eigenes Profil:
aws configure --profile hikube
AWS Access Key ID: <access-key>
AWS Secret Access Key: <secret-key>
Default region name: (leer lassen)
Default output format: json
Verwenden Sie das Profil mit dem Hikube-Endpunkt:
aws s3 ls s3://<bucket>/ --endpoint-url <endpoint> --profile hikube
MinIO Client (mc)
mc alias set hikube <endpoint> <access-key> <secret-key>
# Auflisten, hochladen und herunterladen
mc ls hikube/<bucket>/
mc cp fichier.txt hikube/<bucket>/
mc cp hikube/<bucket>/fichier.txt ./
rclone
Fügen Sie in ~/.config/rclone/rclone.conf ein Remote hinzu:
[hikube]
type = s3
provider = Minio
endpoint = <endpoint>
access_key_id = <access-key>
secret_access_key = <secret-key>
acl = private
# Die Objekte auflisten
rclone ls hikube:<bucket>
# Ein lokales Verzeichnis synchronisieren
rclone sync ./mon-dossier hikube:<bucket>/mon-dossier
Bewährte Sicherheitspraktiken
Speichern Sie Ihre S3-Schlüssel niemals im Klartext in Ihren Git-Repositories oder Container-Images. Verwenden Sie einen Secret-Manager, Umgebungsvariablen oder, in einem Kubernetes-Cluster, ein Secret (siehe Eine Anwendung verbinden).
- Ein Benutzer pro Anwendung: Sie können den Zugriff einer Anwendung widerrufen, ohne die anderen zu beeinträchtigen.
- Standardmäßig Nur-Lesen für Anwendungen, die nur lesen.
- Löschen Sie nicht verwendete Benutzer.
Überprüfung
Listen Sie mit jedem konfigurierten Client den Bucket auf:
aws s3 ls s3://<bucket>/ --endpoint-url <endpoint> --profile hikube
mc ls hikube/<bucket>/
rclone ls hikube:<bucket>
Gibt der Befehl eine leere Liste (leerer Bucket) oder die Liste der Objekte ohne Fehler zurück, ist die Konfiguration korrekt. Mit einem Benutzer mit Read-only muss ein Hochladen mit AccessDenied fehlschlagen.