amazon-web-services - files - update aws cli
Obtención de 403 prohibido desde s3 al intentar descargar un archivo (2)
Creo que debe asegurarse de que los permisos se apliquen a los objetos cuando los mueva / copie entre sectores con el acl "bucket-owner-full-control".
Estos son los detalles sobre cómo hacer esto al mover o copiar archivos, así como de forma retroactiva: https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-owner-access/
Además, puede leer sobre las diversas subvenciones predefinidas aquí: http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
Tengo un depósito en s3 y un usuario tiene acceso completo a ese depósito.
Puedo ejecutar un comando ls
y ver los archivos en el depósito, pero la descarga falla con:
A client error (403) occurred when calling the HeadObject operation: Forbidden
También intenté esto con un usuario al que se le otorgaron permisos S3 completos a través de la consola de IAM. El mismo problema.
Como referencia, aquí está la política de IAM que tengo:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
]
}
También intenté agregar una política de depósito, incluso haciendo que el depósito fuera público, y aún así no ir ... también, desde la consola, traté de establecer permisos individuales en los archivos del depósito y recibí un error que decía que no podía ver el depósito , lo cual es extraño, ya que lo estaba viendo desde la consola cuando apareció el mensaje, y puedo ver cualquier cosa en el cubo.
EDITAR los archivos en mi cubo se copiaron allí desde otro cubo perteneciente a una cuenta diferente, usando credenciales de mi cuenta. Puede o no ser relevante ...
2nd EDIT intenté cargar, descargar y copiar mis propios archivos desde y hacia este cubo desde otros buckets, y funciona bien. El problema es específicamente con los archivos colocados allí desde el cubo de otra cuenta.
¡Gracias!
El problema aquí proviene de cómo obtienes los archivos en el cubo. Específicamente las credenciales que tiene y / o privilegios que otorga en el momento de la carga. Me encontré con un problema de permisos similar cuando tenía varias cuentas de AWS, aunque mi política de depósito era bastante abierta (ya que la tuya está aquí). Había usado accidentalmente las credenciales de una cuenta (llámala A1) cuando subía a un depósito propiedad de una cuenta diferente (A2). Debido a esto, A1 mantuvo los permisos en el objeto y el propietario del cubo no los obtuvo. Hay al menos 3 formas posibles de corregir esto en este escenario en el momento de la carga:
- Cambiar cuentas. Ejecute
$export AWS_DEFAULT_PROFILE=A2
o, para un cambio más permanente, vaya a modificar~/.aws/credentials
y~/.aws/config
para mover las credenciales correctas y la configuración en[default]
. Luego vuelve a subir. - Especifique el otro perfil en el momento de la carga:
aws s3 cp foo s3://mybucket --profile A2
- Abra los permisos para el propietario del depósito (no es necesario cambiar los perfiles):
aws s3 cp foo s3://mybucket --acl bucket-owner-full-control
Tenga en cuenta que las dos primeras formas implican tener un perfil de AWS por separado. Si desea mantener dos conjuntos de credenciales de cuenta disponibles para usted, este es el camino a seguir. Puede configurar un perfil con sus claves, región, etc. haciendo aws configure --profile Foo
. Consulte aquí para obtener más información sobre los perfiles con nombre.
También hay formas ligeramente más complicadas de hacerlo de forma retroactiva (publicación posterior), que puede leer aquí .