amazon s3 - descargar - ¿Cómo puedo establecer una política para un depósito s3 que permita a los usuarios autenticados enumerar el depósito o obtener cualquier archivo del depósito?
subir archivos a aws s3 (2)
He establecido un permiso en el depósito que permite que "Usuarios autenticados" enumeren, carguen y eliminen de un depósito que he creado. Esto parece permitirme subir archivos al depósito, pero parece que la descarga de archivos del depósito no está cubierta por este permiso, y en su lugar necesito definir una política para el depósito. No tengo claro cómo establecer esa política. Probé el generador de políticas con mis mejores suposiciones sobre lo que debería completar, pero el resultado no fue una política válida cuando lo pegué como una nueva política para el depósito (falló con el mensaje La Action does not apply to any resource(s) in statement - Action "s3:ListBucket" in Statement "Stmt-some-number"
). ¿Puede alguien explicar qué está mal con la siguiente política y cómo configurarla correctamente para permitir que los usuarios autenticados recuperen archivos del depósito?
{
"Id": "Policy-some-number",
"Statement": [
{
"Sid": "Stmt-some-number",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": [
"*"
]
}
}
]
}
Solo para felicitar @ c4urself respuesta. la respuesta también ayuda a resolver mi problema, pero hay algunos indicios de la documentación de AWS, en los que puede agregar más de un recurso, simplemente use [] para hacerlos una lista. http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-s3-bucket-policies
{
"Statement": [
{
"Sid": "Access-to-specific-bucket-only",
"Principal": "*",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::my_secure_bucket",
"arn:aws:s3:::my_secure_bucket/*"]
}
]
}
s3:GetObject
aplica a los objetos en el depósito para que el recurso sea correcto: "Resource": "arn:aws:s3:::my-bucket/*"
.
s3:ListBucket
aplica al propio Bucket y, por lo tanto, el Recurso debe ser "Resource": "arn:aws:s3:::my-bucket"
su política resultante debe parecerse a:
{
"Id": "Policy-some-number",
"Statement": [
{
"Sid": "Stmt-some-number",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": [
"*"
]
}
},
{
"Sid": "Stmt-some-other-number",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket",
"Principal": {
"AWS": [
"*"
]
}
}
]
}