mc config host add
は、資格情報の確認をスキップするオプションがあります。
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.
これが私のs3iamポリシーです:
{
"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"
]
}
]
}
古いバージョンのmcでは、クレデンシャルを追加したときに検証されません。
そして、私は自分のs3アクセスキーに非常に厳格な許可を与えています。 だからそれはこのようになります:
アクセスキーはバケット名をリストできません。
macOS、Ubuntu16.04でテスト済み
--api s3v4
直接指定することで可能であり、検証呼び出しパスを呼び出さないでください。
@ tru2dagame回答
(https://docs.minio.io/docs/minio-client-complete-guide)がデフォルトとしてs3v4
を指定しているため、答えは少し混乱します。 --api
オプションを使用すると、明示的に機能しました(macos mcバージョン2018-03-25T01)。 オプションがないと、ここで報告されているのと同じエラーが表示されます。
@rbettsオプション--api
が指定されている場合、資格情報の検証はスキップされます。 オプションを指定しない場合、それはあなたの場合に失敗している検証を行います。 ドキュメントにオプションを追加することを検討します
--api s3v4
パラメータなしでmc
が機能するために必要な正確な認証は何ですか? 以下にs3ユーザー認証を与えますが、それでも機能しません。
{
"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": "*"
}
]
}
このようなコマンドを使用すると、以下のエラーメッセージが表示されます。
$ 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
そして、 --api s3v4
パラメータを追加すると、すべてが正常に機能します。
--api s3v4を直接指定することで可能であり、検証呼び出しパスを呼び出さないでください。
これは私のために働いた。 しかし、裁判なしで、またはこの問題にアクセスせずに理解することは非常に混乱し、理解することは不可能です。
mc config host add
は、 --api
引数の近くに、アクティブなプロービングを妨げると説明することができます。
また、 --debug
出力*なし*を追加すると、コマンドは1分以上空の目で私を見るだけです。:/
最も参考になるコメント
--api s3v4
直接指定することで可能であり、検証呼び出しパスを呼び出さないでください。