mc config host add
kann eine Option zum Überspringen der Überprüfung der Anmeldeinformationen haben.
mc config host add s3-somebucket https://s3.cn-north-1.amazonaws.com.cn XXXXX XXXXXXXXXX S3v4
mc: <ERROR> Unable to initialize new config from the provided credentials. The specified bucket does not exist.
Hier sind meine s3 iam-Richtlinien:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1506154426000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws-cn:s3:::somebucket/*"
]
},
{
"Sid": "Stmt1506154452000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws-cn:s3:::somebucket"
]
}
]
}
In der alten Version von mc wird nicht überprüft, wann ich die Anmeldeinformationen hinzugefügt habe.
Und ich gebe meinem s3-Zugangsschlüssel eine sehr strenge Erlaubnis. Also gefällt es so:
Der Zugriffsschlüssel kann den Bucket-Namen nicht auflisten.
Getestet unter macOS, Ubuntu 16.04
Sie können dies tun, indem Sie --api s3v4
direkt angeben und der Validierungsaufrufpfad nicht aufrufen soll.
@ tru2dagame Schließen dieses Problems als beantwortet. Wenn Sie sich anders fühlen, können Sie das Problem gerne erneut öffnen.
Die Antwort ist etwas verwirrend, da (https://docs.minio.io/docs/minio-client-complete-guide) standardmäßig s3v4
angibt. Die Verwendung der Option --api
hat bei mir explizit funktioniert (macos mc version 2018-03-25T01). Ohne die Option sehe ich den gleichen Fehler wie hier gemeldet.
@rbetts Wenn die Option --api
ist, wird die Überprüfung der Anmeldeinformationen übersprungen. Wenn Sie die Option nicht angeben, wird die Überprüfung durchgeführt, die in Ihrem Fall fehlschlägt. Wir werden uns mit dem Hinzufügen der Option in der Dokumentation befassen
Welche genaue Berechtigung benötigt mc
, um ohne den Parameter --api s3v4
? Ich gebe dem s3-Benutzer unten die Berechtigung, aber es funktioniert immer noch nicht.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws-cn:s3:::<my-bucket>"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws-cn:s3:::<my-bucket>/*"
},
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": "s3:GetBucketLocation",
"Resource": "arn:aws-cn:s3:::<my-bucket>"
},
{
"Sid": "VisualEditor3",
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
}
]
}
Ich habe den Befehl wie folgt verwendet und unten eine Fehlermeldung erhalten:
$ docker run -it --entrypoint=/bin/sh minio/mc:RELEASE.2018-05-25T20-20-15Z
$ mc config host add s3 <endpoint> <key> <secret>; mc ls s3/<my-bucket>
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
mc: <ERROR> Unable to initialize new config from the provided credentials. The specified bucket does not exist.
mc: <ERROR> Unable to stat `<my-bucket>`. Requested file `<my-bucket>` not found
Und wenn ich den Parameter --api s3v4
hinzufüge, funktioniert alles einwandfrei.
Sie können das --api s3v4 direkt bereitstellen und es sollte den Validierungsaufrufpfad nicht aufrufen.
Das hat bei mir funktioniert. Aber es ist äußerst verwirrend und unmöglich, es ohne Gerichtsverfahren oder ohne Besuch dieses Themas zu verstehen.
mc config host add
kann eine Erklärung in der Nähe des Arguments --api
, die besagt, dass dies eine aktive Prüfung verhindern würde.
Der Befehl fügt auch --debug
Ausgaben hinzu * nichts * und sieht mich nur mit leeren Augen länger als eine Minute an ..: /
Hilfreichster Kommentar
Sie können dies tun, indem Sie
--api s3v4
direkt angeben und der Validierungsaufrufpfad nicht aufrufen soll.