ECS: ACL de depósito de solo lectura para un usuario de objetos que no es propietario y que no puede descargar los objetos cargados
摘要: En esta base de conocimientos, se explica el concepto de listas de control de acceso (ACL) de depósitos para el usuario objeto no propietario desde una perspectiva de solo lectura en S3 Browser. ...
症狀
El usuario del objeto no propietario se agregó como de solo lectura al depósito mediante una ACL del depósito.
Un usuario de objetos que no es propietario del depósito no puede descargar objetos cargados por el usuario propietario del depósito de objetos antes de la creación de la ACL del depósito.
El flujo del problema es el siguiente:
- El depósito se creó con el usuario propietario del objeto asignado.
- El usuario propietario del objeto cargó algunos archivos en el depósito.
- El usuario del objeto no propietario se agregó como de solo lectura al depósito mediante una ACL del depósito.
- Al intentar acceder al depósito, el usuario objeto que no es propietario puede enumerar y descargar objetos cargados recientemente, pero no puede descargar objetos cargados antes de la ACL del depósito de solo lectura. Podemos ver que los derechos de usuario en los objetos no se establecen en el navegador S3 según la configuración en la interfaz de usuario de ECS.
El error cuando el usuario de objetos que no es propietario hace clic en un objeto mediante S3 Browser es el siguiente: (Acceso denegado: Acceso denegado):
A continuación, se muestra la configuración de ACL del depósito para el usuario propietario del objeto (a_s3user) y el usuario de objetos no propietario (a_s3test):
原因
Los permisos de S3 se pueden configurar en el nivel del depósito o de los objetos. ECS cumple con los mismos principios que AWS S3, según el tipo de política aplicada. Determina el tipo de operaciones que se permitirán en el nivel de depósito o en el nivel de objeto.
- Cuando se otorgan las opciones READ y READ ACL en el nivel del depósito de ECS, el propietario que no es del depósito solo enumerará los objetos en el depósito; el propietario que no es del depósito no puede descargar datos del depósito
- Cuando se escribe un objeto en un depósito, solo el usuario que escribe el objeto tiene permiso de lectura. Para que otros usuarios puedan leer los objetos, el propietario debe otorgar permiso explícitamente a los usuarios.
- Para otorgar permiso a personas que no son propietarios de depósitos, debemos usar las políticas de depósitos de S3
Los permisos de ACL que se pueden asignar se proporcionan en la siguiente tabla. Los permisos aplicables dependen del tipo de depósito.
| ACL | Permisos | ||
|---|---|---|---|
| Lectura | Permite que el usuario enumere los objetos en el depósito | ||
| Read ACL | Permite que el usuario lea la ACL del depósito | ||
| Escritura | Permite al usuario crear o actualizar cualquier objeto en el depósito | ||
| ACL de escritura. | Permite que el usuario escriba la ACL del depósito | ||
| Ejecutar | Establece el permiso de ejecución cuando se accede como un sistema de archivos: este permiso no tiene ningún efecto cuando se accede al objeto mediante los protocolos de objetos de ECS. | ||
| Full Control | Permite que el usuario lea, escriba, lea las ACL y escriba ACL.
|
||
| Privileged Write | Permite que el usuario realice escrituras en un depósito u objeto cuando no tiene permiso de escritura normal: necesario para los depósitos de CAS | ||
| Delete | Permite que el usuario elimine depósitos y objetos: necesario para los depósitos de CAS | ||
| Ninguno | El usuario no tiene privilegios en el depósito. |
AWS es compatible con varios tipos de políticas.
- Listas de control de acceso (ACL)
- Políticas basadas en identidad
- Límites de permisos
- Políticas basadas en recursos
Referencia de ACL de depósitos de AWS
En la siguiente tabla se muestra el conjunto de permisos que Amazon S3 admite en una ACL. El conjunto de permisos de ACL es el mismo para una ACL de objetos y una ACL de depósito. Sin embargo, según el contexto (ACL de depósito o ACL de objetos), estos permisos de ACL otorgan permisos para depósitos específicos u operaciones de objetos. En la tabla, se enumeran los permisos y se describe qué significan en el contexto de objetos y depósitos.
| Permisos | Cuando se otorga en un depósito | Cuando se concede a un objeto |
|---|---|---|
READ |
Permite que el receptor enumere los objetos en el depósito | Permite al receptor leer los datos del objeto y sus metadatos |
WRITE |
Permite al receptor crear, sobrescribir y eliminar cualquier objeto en el depósito | No corresponde |
READ_ACP |
Permite al receptor leer la ACL del depósito | Permite al receptor leer la ACL del objeto. |
WRITE_ACP |
Permite que el receptor escriba la ACL para el depósito correspondiente | Permite que el receptor escriba la ACL para el objeto correspondiente |
FULL_CONTROL |
Otorga al receptor los permisos de LECTURA, ESCRITURA, READ_ACP y WRITE_ACP en el depósito | Otorga al receptor los permisos de LECTURA, READ_ACP y WRITE_ACP en el objeto |
Documentación de Amazon S3
En la siguiente tabla, se muestra cómo se asigna cada permiso de ACL a los permisos de política de acceso correspondientes. Como puede ver, la política de acceso otorga más permisos que una ACL. Las ACL se utilizan principalmente para otorgar permisos básicos de lectura/escritura, similares a los permisos del sistema de archivos. Para obtener más información sobre cuándo usar una ACL, consulte Reglas para el uso de las opciones de políticas de acceso disponibles.
| Permiso de ACL | Permisos de política de acceso correspondientes cuando se otorga el permiso de ACL en un depósito | Permisos de política de acceso correspondientes cuando se otorga el permiso de ACL en un objeto |
|---|---|---|
READ |
s3:ListBucket, s3:ListBucketVersionsy s3:ListBucketMultipartUploads |
s3:GetObject, s3:GetObjectVersiony s3:GetObjectTorrent |
WRITE |
Además, cuando el receptor es el propietario del depósito, la concesión |
No corresponde |
READ_ACP |
s3:GetBucketAcl |
s3:GetObjectAcl y s3:GetObjectVersionAcl |
WRITE_ACP |
s3:PutBucketAcl |
s3:PutObjectAcl y s3:PutObjectVersionAcl |
FULL_CONTROL |
Equivalente a otorgar READ, WRITE, READ_ACPy WRITE_ACP Permisos de ACL: este permiso de ACL se asigna a una combinación de los permisos de la política de acceso correspondientes. |
Equivalente a otorgar READ, READ_ACPy WRITE_ACP Permisos de ACL. Por lo tanto, este permiso de ACL se asigna a una combinación de permisos de políticas de acceso correspondientes. |
解析度
Opción 1:
Consulte la Guía de acceso a datos de ECS, cómo usar las políticas de depósitos. A diferencia de las ACL, que permiten todas las acciones o ninguna, las políticas de acceso proporcionan permisos granulares y condicionales para acciones específicas a usuarios específicos, o a todos los usuarios. Las condiciones de políticas se pueden usar para asignar permisos para una variedad de objetos que coincidan con la condición. Esto se puede utilizar para asignar automáticamente permisos a objetos cargados recientemente.
Consulte AWS S3:
https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.htmlDesde UI-Manage-Bucket-Edit>>> bucket policy, ingrese algo similar a esto en el editor de políticas:
{
"Version": "2012-10-17",
"Id": "Policy1593674317613",
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Resource": "bucket_name/*",
"Effect": "Allow",
"Principal": "read-only_user",
"Sid": "Stmt1593673962638"
}
]
}Donde la acción: "S3:GetObject" es la acción que se permitirá para poder descargar objetos.
Donde Efecto: "Allow"
where resource": "bucket_name/*" es el nombre del depósito.
En caso de ser principal": "read-only_user" es un usuario que no es propietario del depósito.
Opción 2:
Mediante S3 Browser con el propietario del objeto, cambie el permiso de usuarios autenticados para los objetos cargados antes de la ACL del depósito de solo lectura a fin de garantizar que el usuario de objetos que no es propietario pueda descargar el objeto:
其他資訊
Si tiene problemas para cargar un objeto a través del propietario del objeto y los permisos no se aplican a los usuarios autenticados que tienen acceso de escritura, revise el artículo de la base de conocimientos 520711