mc config host add
puede tener una opción para omitir la verificación de credenciales.
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.
Aquí están mis políticas de s3 iam:
{
"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"
]
}
]
}
En la versión anterior de mc, no se verificará cuando agregué las credenciales.
Y doy un permiso muy estricto a mi clave de acceso s3. Entonces hace así:
La clave de acceso no puede incluir el nombre del depósito.
Probado en macOS, Ubuntu 16.04
Puede proporcionar --api s3v4
directamente y no debería llamar a la ruta de la llamada de validación.
@ tru2dagame Cerrando este problema como respondido. No dude en volver a abrir el problema si cree lo contrario.
La respuesta es un poco confusa ya que (https://docs.minio.io/docs/minio-client-complete-guide) especifica s3v4
como valor predeterminado. El uso de la opción --api
funcionó explícitamente para mí (macos mc versión 2018-03-25T01). Sin la opción, veo el mismo error que se informa aquí.
@rbetts si se proporciona la opción --api
, se omite la verificación de credenciales. Si no especifica la opción, hará la verificación que está fallando en su caso. Buscará agregar la opción en la documentación.
¿Qué autorización exacta necesita mc
para funcionar sin el parámetro --api s3v4
? Doy la autorización de usuario de s3 a continuación, pero todavía no funciona.
{
"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": "*"
}
]
}
Usé el comando como este y recibí el siguiente mensaje de error:
$ 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
Y si agrego el parámetro --api s3v4
, todo funciona bien.
Puede proporcionar --api s3v4 directamente y no debería llamar a la ruta de la llamada de validación.
Esto funcionó para mí. Pero es extremadamente confuso e imposible de entender sin juicio o sin visitar este número.
mc config host add
puede tener una explicación cerca del argumento --api
, diciendo que evitaría el sondeo activo.
También agregando --debug
salidas * nada *, el comando solo me mira con los ojos vacíos, por más de un minuto ..: /
Comentario más útil
Puede proporcionar
--api s3v4
directamente y no debería llamar a la ruta de la llamada de validación.