Utilice políticas de acceso a grupos y buckets
StorageGRID utiliza el lenguaje de políticas de Amazon Web Services (AWS) para permitir que los inquilinos de S3 controlen el acceso a los depósitos y los objetos dentro de esos depósitos. El sistema StorageGRID implementa un subconjunto del lenguaje de políticas de la API REST de S3. Las políticas de acceso para la API S3 están escritas en JSON.
Descripción general de la política de acceso
StorageGRID admite dos tipos de políticas de acceso.
-
Políticas de bucket, que se administran mediante las operaciones de API S3 GetBucketPolicy, PutBucketPolicy y DeleteBucketPolicy o la API Tenant Manager o Tenant Management. Las políticas de depósito se adjuntan a los depósitos, por lo que están configuradas para controlar el acceso de los usuarios en la cuenta del propietario del depósito u otras cuentas al depósito y a los objetos que contiene. Una política de buckets se aplica solo a un bucket y posiblemente a varios grupos.
-
Políticas de grupo, que se configuran mediante el Administrador de inquilinos o la API de administración de inquilinos. Las políticas de grupo están asociadas a un grupo en la cuenta, por lo que están configuradas para permitir que ese grupo acceda a recursos específicos que pertenecen a esa cuenta. Una política de grupo se aplica solo a un grupo y posiblemente a varios grupos.
|
No hay diferencia de prioridad entre las políticas de grupo y de grupo. |
Las políticas de grupo y de depósito de StorageGRID siguen una gramática específica definida por Amazon. Dentro de cada política hay una serie de declaraciones de políticas, y cada declaración contiene los siguientes elementos:
-
ID de declaración (Sid) (opcional)
-
Efecto
-
Director/No director
-
Recurso/NoRecurso
-
Acción/No acción
-
Condición (opcional)
Las declaraciones de política se crean utilizando esta estructura para especificar permisos: Otorgar <Efecto> para permitir/denegar que <Principal> realice <Acción> en <Recurso> cuando se aplica <Condición>.
Cada elemento de política se utiliza para una función específica:
Elemento | Descripción |
---|---|
Sid |
El elemento Sid es opcional. El Sid solo pretende servir como descripción para el usuario. Se almacena pero no es interpretado por el sistema StorageGRID . |
Efecto |
Utilice el elemento Efecto para establecer si las operaciones especificadas están permitidas o denegadas. Debe identificar las operaciones que permite (o deniega) en depósitos u objetos utilizando las palabras clave del elemento Acción compatible. |
Director/No director |
Puede permitir que usuarios, grupos y cuentas accedan a recursos específicos y realicen acciones específicas. Si no se incluye ninguna firma S3 en la solicitud, se permite el acceso anónimo especificando el carácter comodín (*) como principal. De forma predeterminada, solo la cuenta raíz tiene acceso a los recursos que posee la cuenta. Solo es necesario especificar el elemento Principal en una política de bucket. Para las políticas de grupo, el grupo al que está asociada la política es el elemento Principal implícito. |
Recurso/NoRecurso |
El elemento Recurso identifica depósitos y objetos. Puede permitir o denegar permisos para depósitos y objetos utilizando el nombre de recurso de Amazon (ARN) para identificar el recurso. |
Acción/No acción |
Los elementos Acción y Efecto son los dos componentes de los permisos. Cuando un grupo solicita un recurso, se le concede o se le deniega el acceso al mismo. Se deniega el acceso a menos que usted asigne permisos específicos, pero puede usar la denegación explícita para anular un permiso otorgado por otra política. |
Condición |
El elemento Condición es opcional. Las condiciones le permiten crear expresiones para determinar cuándo se debe aplicar una política. |
En el elemento Acción, puede utilizar el carácter comodín (*) para especificar todas las operaciones o un subconjunto de operaciones. Por ejemplo, esta acción coincide con permisos como s3:GetObject, s3:PutObject y s3:DeleteObject.
s3:*Object
En el elemento Recurso, puede utilizar los caracteres comodín (*) y (?). Mientras que el asterisco (*) coincide con 0 o más caracteres, el signo de interrogación (?) coincide con cualquier carácter individual.
En el elemento Principal, no se admiten caracteres comodín excepto para establecer acceso anónimo, que otorga permiso a todos. Por ejemplo, establece el comodín (*) como valor principal.
"Principal":"*"
"Principal":{"AWS":"*"}
En el siguiente ejemplo, la declaración utiliza los elementos Efecto, Principal, Acción y Recurso. Este ejemplo muestra una declaración de política de bucket completa que utiliza el efecto "Permitir" para otorgar a los principales, el grupo de administración federated-group/admin
y el grupo financiero federated-group/finance
, permisos para realizar la Acción s3:ListBucket
en el cubo llamado mybucket
y la Acción s3:GetObject
en todos los objetos dentro de ese cubo.
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::27233906934684427525:federated-group/admin", "arn:aws:iam::27233906934684427525:federated-group/finance" ] }, "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::mybucket", "arn:aws:s3:::mybucket/*" ] } ] }
La política de depósito tiene un límite de tamaño de 20 480 bytes y la política de grupo tiene un límite de tamaño de 5120 bytes.
Coherencia de las políticas
De forma predeterminada, cualquier actualización que realice en las políticas de grupo será coherente en el futuro. Cuando una política de grupo se vuelve consistente, los cambios pueden tardar 15 minutos adicionales en surtir efecto, debido al almacenamiento en caché de la política. De forma predeterminada, todas las actualizaciones que realice en las políticas de depósito serán muy coherentes.
Según sea necesario, puede cambiar las garantías de consistencia para las actualizaciones de la política de bucket. Por ejemplo, es posible que desee que un cambio en una política de depósito esté disponible durante una interrupción del sitio.
En este caso, puede configurar el Consistency-Control
encabezado en la solicitud PutBucketPolicy, o puede utilizar la solicitud de consistencia PUT Bucket. Cuando una política de bucket se vuelve consistente, los cambios pueden tardar 8 segundos adicionales en surtir efecto, debido al almacenamiento en caché de políticas.
|
Si establece la consistencia en un valor diferente para solucionar una situación temporal, asegúrese de restablecer la configuración de nivel de depósito a su valor original cuando haya terminado. De lo contrario, todas las futuras solicitudes de bucket utilizarán la configuración modificada. |
Utilice ARN en declaraciones de políticas
En las declaraciones de políticas, el ARN se utiliza en los elementos Principal y Recurso.
-
Utilice esta sintaxis para especificar el ARN del recurso S3:
arn:aws:s3:::bucket-name arn:aws:s3:::bucket-name/object_key
-
Utilice esta sintaxis para especificar el ARN del recurso de identidad (usuarios y grupos):
arn:aws:iam::account_id:root arn:aws:iam::account_id:user/user_name arn:aws:iam::account_id:group/group_name arn:aws:iam::account_id:federated-user/user_name arn:aws:iam::account_id:federated-group/group_name
Otras consideraciones:
-
Puede utilizar el asterisco (*) como comodín para que coincida con cero o más caracteres dentro de la clave del objeto.
-
Los caracteres internacionales, que se pueden especificar en la clave del objeto, deben codificarse utilizando JSON UTF-8 o utilizando secuencias de escape JSON \u. No se admite la codificación porcentual.
El cuerpo de la solicitud HTTP para la operación PutBucketPolicy debe estar codificado con charset=UTF-8.
Especificar recursos en una política
En las declaraciones de políticas, puede utilizar el elemento Recurso para especificar el depósito o el objeto para el cual se permiten o deniegan permisos.
-
Cada declaración de política requiere un elemento de recurso. En una política, los recursos se denotan mediante el elemento
Resource
, o alternativamente,NotResource
para exclusión. -
Usted especifica recursos con un ARN de recurso S3. Por ejemplo:
"Resource": "arn:aws:s3:::mybucket/*"
-
También puede utilizar variables de política dentro de la clave del objeto. Por ejemplo:
"Resource": "arn:aws:s3:::mybucket/home/${aws:username}/*"
-
El valor del recurso puede especificar un depósito que aún no existe cuando se crea una política de grupo.
Especificar los principales en una política
Utilice el elemento Principal para identificar el usuario, grupo o cuenta de inquilino a quien se le permite o deniega el acceso al recurso mediante la declaración de política.
-
Cada declaración de política en una política de grupo debe incluir un elemento Principal. Las declaraciones de política en una política de grupo no necesitan el elemento Principal porque se entiende que el grupo es el principal.
-
En una política, los principales se indican con el elemento "Principal" o, alternativamente, "NoPrincipal" para su exclusión.
-
Las identidades basadas en cuentas deben especificarse mediante un ID o un ARN:
"Principal": { "AWS": "account_id"} "Principal": { "AWS": "identity_arn" }
-
Este ejemplo utiliza el ID de cuenta de inquilino 27233906934684427525, que incluye la raíz de la cuenta y todos los usuarios de la cuenta:
"Principal": { "AWS": "27233906934684427525" }
-
Puede especificar solo la cuenta raíz:
"Principal": { "AWS": "arn:aws:iam::27233906934684427525:root" }
-
Puede especificar un usuario federado específico ("Alex"):
"Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-user/Alex" }
-
Puede especificar un grupo federado específico ("Administradores"):
"Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-group/Managers" }
-
Puede especificar un principal anónimo:
"Principal": "*"
-
Para evitar ambigüedades, puede utilizar el UUID del usuario en lugar del nombre de usuario:
arn:aws:iam::27233906934684427525:user-uuid/de305d54-75b4-431b-adb2-eb6b9e546013
Por ejemplo, supongamos que Alex abandona la organización y el nombre de usuario
Alex
se elimina Si un nuevo Alex se une a la organización y se le asigna el mismoAlex
nombre de usuario, el nuevo usuario podría heredar involuntariamente los permisos otorgados al usuario original. -
El valor principal puede especificar un nombre de grupo/usuario que aún no existe cuando se crea una política de depósito.
Especificar permisos en una política
En una política, el elemento Acción se utiliza para permitir o denegar permisos a un recurso. Hay un conjunto de permisos que puedes especificar en una política, que se indican con el elemento "Acción" o, alternativamente, "No acción" para la exclusión. Cada uno de estos elementos se asigna a operaciones específicas de la API REST de S3.
Las tablas enumeran los permisos que se aplican a los depósitos y los permisos que se aplican a los objetos.
|
Amazon S3 ahora usa el permiso s3:PutReplicationConfiguration para las acciones PutBucketReplication y DeleteBucketReplication. StorageGRID utiliza permisos separados para cada acción, lo que coincide con la especificación original de Amazon S3. |
|
Se realiza una eliminación cuando se utiliza una operación put para sobrescribir un valor existente. |
Permisos que se aplican a los buckets
Permisos | Operaciones de la API REST de S3 | Personalizado para StorageGRID |
---|---|---|
s3:CrearCubo |
Crear cubo |
Sí. Nota: Úselo solo en políticas de grupo. |
s3:Eliminar depósito |
Eliminar cubo |
|
s3:Notificación de metadatos de eliminación de depósito |
Configuración de notificación de metadatos del depósito DELETE |
Sí |
s3: Eliminar política de depósito |
Política de eliminación de cubos |
|
s3:Eliminar configuración de replicación |
EliminarReplicaciónDeBucket |
Sí, permisos separados para PUT y DELETE |
s3:ObtenerAcl del depósito |
ObtenerBucketAcl |
|
s3:Obtener cumplimiento del cubo |
Cumplimiento de GET Bucket (obsoleto) |
Sí |
s3: Obtener consistencia del cubo |
Obtener consistencia del bucket |
Sí |
s3:ObtenerBucketCORS |
ObtenerBucketCors |
|
s3:Obtener configuración de cifrado |
Obtener cifrado de cubo |
|
s3: Obtener hora del último acceso al depósito |
GET Hora del último acceso al bucket |
Sí |
s3: Obtener ubicación del depósito |
Obtener la ubicación del cubo |
|
s3:Obtener notificación de metadatos del depósito |
Configuración de notificación de metadatos del depósito GET |
Sí |
s3:Obtener notificación del cubo |
Configuración de GetBucketNotification |
|
s3:Configuración de bloqueo de objeto de depósito |
Obtener configuración de bloqueo de objeto |
|
s3: Obtener política de depósito |
Obtener política de cubo |
|
s3: Obtener etiquetado de cubo |
Obtener etiquetado de cubos |
|
s3: Obtener versiones de Bucket |
Obtener versiones de Bucket |
|
s3:Obtener configuración del ciclo de vida |
Obtener configuración del ciclo de vida del cubo |
|
s3:Obtener configuración de replicación |
Obtener réplica de cubo |
|
s3: Listar todos mis cubos |
|
Sí, para el uso de almacenamiento GET. Nota: Úselo solo en políticas de grupo. |
s3:ListBucket |
|
|
s3:ListBucketMultipartUploads |
|
|
s3:ListBucketVersions |
GET Versiones del Bucket |
|
s3:Cumplimiento de PutBucket |
Cumplimiento del contenedor PUT (obsoleto) |
Sí |
s3:Consistencia del cubo de colocación |
Consistencia del depósito PUT |
Sí |
s3:PonerCuboCORS |
|
|
s3:PonerConfiguraciónDeCifrado |
|
|
s3:PonerBucketÚltimoAccesoHora |
Hora del último acceso al depósito PUT |
Sí |
s3:Notificación de metadatos de PutBucket |
Configuración de notificación de metadatos del depósito PUT |
Sí |
s3:Notificación de depósito de colocación |
Configuración de notificación de PutBucket |
|
s3:Configuración de bloqueo de objeto PutBucket |
|
|
s3:Política de depósito de colocación |
Política de depósito de basura |
|
s3:Etiquetado de cubo de colocación |
|
|
s3:Versión de PutBucket |
Versiones de PutBucket |
|
s3:Configuración del ciclo de vida de PutLifecycle |
|
|
s3:PonerConfiguraciónDeReplicación |
Replicación de PutBucket |
Sí, permisos separados para PUT y DELETE |
Permisos que se aplican a los objetos
Permisos | Operaciones de la API REST de S3 | Personalizado para StorageGRID |
---|---|---|
s3:AbortarCargaMultiparte |
|
|
s3: Retención de gobernanza de bypass |
|
|
s3:EliminarObjeto |
|
|
s3:EliminarEtiquetadoDeObjeto |
Eliminar etiquetado de objetos |
|
s3: Eliminar etiquetado de versión de objeto |
DeleteObjectTagging (una versión específica del objeto) |
|
s3:EliminarVersiónDeObjeto |
DeleteObject (una versión específica del objeto) |
|
s3:Obtener objeto |
|
|
s3:ObtenerAclObjeto |
ObtenerObjetoAcl |
|
s3:ObtenerRetenciónLegalDeObjeto |
Obtener retención legal de objeto |
|
s3:ObtenerRetenciónDeObjeto |
Obtener retención de objetos |
|
s3:Obtener etiquetado de objeto |
Obtener etiquetado de objetos |
|
s3: Obtener etiquetado de versión de objeto |
GetObjectTagging (una versión específica del objeto) |
|
s3:ObtenerVersiónDeObjeto |
GetObject (una versión específica del objeto) |
|
s3:ListaMultiparteSubirPartes |
Lista de partes, Restaurar objeto |
|
s3:PonerObjeto |
|
|
s3:PonerObjetoLegalRetenido |
PonerObjetoLegalRetención |
|
s3:PonerRetenciónDeObjeto |
PonerRetenciónDeObjeto |
|
s3:Etiquetado de objetos de colocación |
Etiquetado de objetos puestos |
|
s3:Etiquetado de versión de objeto de colocación |
PutObjectTagging (una versión específica del objeto) |
|
s3:PonerObjetoSobrescrito |
|
Sí |
s3:RestaurarObjeto |
Restaurar objeto |
Utilice el permiso PutOverwriteObject
El permiso s3:PutOverwriteObject es un permiso de StorageGRID personalizado que se aplica a las operaciones que crean o actualizan objetos. La configuración de este permiso determina si el cliente puede sobrescribir los datos de un objeto, los metadatos definidos por el usuario o el etiquetado de objetos S3.
Las posibles configuraciones para este permiso incluyen:
-
Permitir: El cliente puede sobrescribir un objeto. Esta es la configuración predeterminada.
-
Denegar: El cliente no puede sobrescribir un objeto. Cuando se establece en Denegar, el permiso PutOverwriteObject funciona de la siguiente manera:
-
Si se encuentra un objeto existente en la misma ruta:
-
Los datos del objeto, los metadatos definidos por el usuario o el etiquetado del objeto S3 no se pueden sobrescribir.
-
Cualquier operación de ingesta en curso se cancela y se devuelve un error.
-
Si el control de versiones S3 está habilitado, la configuración Denegar evita que las operaciones PutObjectTagging o DeleteObjectTagging modifiquen el TagSet de un objeto y sus versiones no actuales.
-
-
Si no se encuentra un objeto existente, este permiso no tiene efecto.
-
-
Cuando este permiso no está presente, el efecto es el mismo que si estuviera configurado Permitir.
|
Si la política S3 actual permite sobrescribir y el permiso PutOverwriteObject está configurado en Denegar, el cliente no puede sobrescribir los datos de un objeto, los metadatos definidos por el usuario ni el etiquetado de objetos. Además, si se selecciona la casilla de verificación Evitar modificación del cliente (CONFIGURACIÓN > Configuración de seguridad > Red y objetos), esa configuración anula la configuración del permiso PutOverwriteObject. |
Especificar condiciones en una póliza
Las condiciones definen cuándo entrará en vigor una política. Las condiciones constan de operadores y pares clave-valor.
Las condiciones utilizan pares clave-valor para la evaluación. Un elemento Condición puede contener múltiples condiciones, y cada condición puede contener múltiples pares clave-valor. El bloque de condición utiliza el siguiente formato:
Condition: { condition_type: { condition_key: condition_values
En el siguiente ejemplo, la condición IpAddress utiliza la clave de condición SourceIp.
"Condition": { "IpAddress": { "aws:SourceIp": "54.240.143.0/24" ... }, ...
Operadores de condición admitidos
Los operadores de condición se clasifican de la siguiente manera:
-
Cadena
-
Numérico
-
Booleano
-
Dirección IP
-
Comprobación nula
Operadores de condición | Descripción |
---|---|
CadenaIgual |
Compara una clave con un valor de cadena basándose en la coincidencia exacta (distingue entre mayúsculas y minúsculas). |
CadenaNoIgual |
Compara una clave con un valor de cadena basándose en la coincidencia negada (distingue entre mayúsculas y minúsculas). |
CadenaIgualIgnorarMayúsculas y Minúsculas |
Compara una clave con un valor de cadena basándose en la coincidencia exacta (ignora mayúsculas y minúsculas). |
CadenaNoIgualIgnorarMayúsculas y Minúsculas |
Compara una clave con un valor de cadena basándose en la coincidencia negada (ignora mayúsculas y minúsculas). |
Similar a una cadena |
Compara una clave con un valor de cadena basándose en la coincidencia exacta (distingue entre mayúsculas y minúsculas). Puede incluir caracteres comodín * y ?. |
CadenaNoMe Gusta |
Compara una clave con un valor de cadena basándose en la coincidencia negada (distingue entre mayúsculas y minúsculas). Puede incluir caracteres comodín * y ?. |
NumericEquals |
Compara una clave con un valor numérico basándose en la coincidencia exacta. |
NuméricoNoIgual |
Compara una clave con un valor numérico basándose en la coincidencia negada. |
NuméricoMayorQue |
Compara una clave con un valor numérico basándose en la coincidencia "mayor que". |
NuméricoMayorQueIgual |
Compara una clave con un valor numérico basándose en la coincidencia "mayor o igual que". |
NuméricoMenosQue |
Compara una clave con un valor numérico basándose en la coincidencia "menor que". |
NuméricoMenorQueIgual |
Compara una clave con un valor numérico basándose en la coincidencia "menor o igual que". |
Bool |
Compara una clave con un valor booleano basándose en la coincidencia "verdadero o falso". |
Dirección IP |
Compara una clave con una dirección IP o un rango de direcciones IP. |
No dirección IP |
Compara una clave con una dirección IP o un rango de direcciones IP basándose en la coincidencia negada. |
Nulo |
Comprueba si una clave de condición está presente en el contexto de solicitud actual. |
Claves de condición admitidas
Claves de condición | Comportamiento | Descripción |
---|---|---|
aws:FuenteIp |
Operadores de IP |
Se comparará con la dirección IP desde la que se envió la solicitud. Se puede utilizar para operaciones con cubos o con objetos. Nota: Si la solicitud S3 se envió a través del servicio Load Balancer en los nodos de administración y los nodos de puerta de enlace, esto se comparará con la dirección IP ascendente del servicio Load Balancer. Nota: Si se utiliza un balanceador de carga de terceros no transparente, esto se comparará con la dirección IP de ese balanceador de carga. Cualquier |
aws:nombre de usuario |
Recurso/Identidad |
Se comparará con el nombre de usuario del remitente desde el que se envió la solicitud. Se puede utilizar para operaciones con cubos o con objetos. |
s3:delimitador |
s3:ListBucket y Permisos s3:ListBucketVersions |
Se comparará con el parámetro delimitador especificado en una solicitud ListObjects o ListObjectVersions. |
s3:ExistingObjectTag/<clave de etiqueta> |
s3:EliminarEtiquetadoDeObjeto s3: Eliminar etiquetado de versión de objeto s3:Obtener objeto s3:ObtenerAclObjeto 3: Obtener etiquetado de objetos s3:ObtenerVersiónDeObjeto s3:ObtenerAcl de versión de objeto s3: Obtener etiquetado de versión de objeto s3:PonerObjetoAcl s3:Etiquetado de objetos de colocación s3:PonerObjetoVersiónAcl s3:Etiquetado de versión de objeto de colocación |
Requerirá que el objeto existente tenga la clave y el valor de etiqueta específicos. |
s3:máximo de teclas |
s3:ListBucket y Permisos s3:ListBucketVersions |
Se comparará con el parámetro max-keys especificado en una solicitud ListObjects o ListObjectVersions. |
s3: días de retención restantes del bloqueo de objeto |
s3:PonerObjeto |
Se compara con la fecha de conservación especificada en el
|
s3: días de retención restantes del bloqueo de objeto |
s3:PonerRetenciónDeObjeto |
Se compara con la fecha de retención hasta especificada en la solicitud PutObjectRetention para garantizar que esté dentro del rango permitido. |
s3:prefijo |
s3:ListBucket y Permisos s3:ListBucketVersions |
Se comparará con el parámetro de prefijo especificado en una solicitud ListObjects o ListObjectVersions. |
s3:RequestObjectTag/<clave de etiqueta> |
s3:PonerObjeto s3:Etiquetado de objetos de colocación s3:Etiquetado de versión de objeto de colocación |
Requerirá una clave y un valor de etiqueta específicos cuando la solicitud de objeto incluya etiquetado. |
Especificar variables en una política
Puede utilizar variables en las políticas para completar la información de políticas cuando esté disponible. Puede utilizar variables de política en el Resource
elemento y en comparaciones de cadenas en el Condition
elemento.
En este ejemplo, la variable ${aws:username}
es parte del elemento Recurso:
"Resource": "arn:aws:s3:::bucket-name/home/${aws:username}/*"
En este ejemplo, la variable ${aws:username}
es parte del valor de la condición en el bloque de condición:
"Condition": { "StringLike": { "s3:prefix": "${aws:username}/*" ... }, ...
Variable | Descripción |
---|---|
|
Utiliza la clave SourceIp como variable proporcionada. |
|
Utiliza la clave de nombre de usuario como variable proporcionada. |
|
Utiliza la clave de prefijo específica del servicio como la variable proporcionada. |
|
Utiliza la clave max-keys específica del servicio como variable proporcionada. |
|
Carácter especial. Utiliza el carácter como un carácter literal *. |
|
Carácter especial. Utiliza el carácter como un carácter literal ?. |
|
Carácter especial. Utiliza el carácter como un carácter literal $. |
Crear políticas que requieran un manejo especial
A veces, una política puede otorgar permisos que son peligrosos para la seguridad o para las operaciones continuas, como bloquear al usuario raíz de la cuenta. La implementación de la API REST S3 de StorageGRID es menos restrictiva durante la validación de políticas que Amazon, pero igualmente estricta durante la evaluación de políticas.
Descripción de la política | Tipo de póliza | Comportamiento de Amazon | Comportamiento de StorageGRID |
---|---|---|---|
Negarse a sí mismo cualquier permiso a la cuenta raíz |
Balde |
Válido y aplicado, pero la cuenta de usuario raíz conserva el permiso para todas las operaciones de política de bucket de S3 |
Mismo |
Negarme cualquier permiso a un usuario o grupo |
Grupo |
Válido y ejecutado |
Mismo |
Permitir a un grupo de cuentas extranjeras cualquier permiso |
Balde |
Principal inválido |
Válido, pero los permisos para todas las operaciones de políticas de bucket S3 devuelven un error 405 Método no permitido cuando lo permite una política |
Permitir a una cuenta externa root o a un usuario cualquier permiso |
Balde |
Válido, pero los permisos para todas las operaciones de políticas de bucket S3 devuelven un error 405 Método no permitido cuando lo permite una política |
Mismo |
Permitir a todos permisos para todas las acciones |
Balde |
Válido, pero los permisos para todas las operaciones de política de bucket S3 devuelven un error 405 Método no permitido para la raíz de la cuenta externa y los usuarios |
Mismo |
Negar a todos los permisos para todas las acciones |
Balde |
Válido y aplicado, pero la cuenta de usuario raíz conserva el permiso para todas las operaciones de política de bucket de S3 |
Mismo |
El principal es un usuario o grupo inexistente |
Balde |
Principal inválido |
Válido |
El recurso es un bucket S3 inexistente |
Grupo |
Válido |
Mismo |
Principal es un grupo local |
Balde |
Principal inválido |
Válido |
La política otorga a una cuenta que no es de propietario (incluidas las cuentas anónimas) permisos para colocar objetos. |
Balde |
Válido. Los objetos son propiedad de la cuenta del creador y la política de buckets no se aplica. La cuenta del creador debe otorgar permisos de acceso para el objeto mediante listas de control de acceso (ACL) de objeto. |
Válido. Los objetos son propiedad de la cuenta del propietario del depósito. Se aplica la política de cubos. |
Protección de escritura única y lectura múltiple (WORM)
Puede crear depósitos de escritura única y lectura múltiple (WORM) para proteger datos, metadatos de objetos definidos por el usuario y etiquetado de objetos S3. Configura los depósitos WORM para permitir la creación de nuevos objetos y evitar sobrescrituras o eliminaciones de contenido existente. Utilice uno de los enfoques descritos aquí.
Para garantizar que siempre se rechacen las sobrescrituras, puede:
-
Desde el Administrador de red, vaya a CONFIGURACIÓN > Seguridad > Configuración de seguridad > Red y objetos y seleccione la casilla de verificación Evitar modificación del cliente.
-
Aplicar las siguientes reglas y políticas S3:
-
Agregue una operación PutOverwriteObject DENY a la política S3.
-
Agregue una operación DeleteObject DENY a la política S3.
-
Agregue una operación PutObject ALLOW a la política S3.
-
|
Establecer DeleteObject como DENY en una política S3 no impide que ILM elimine objetos cuando existe una regla como "cero copias después de 30 días". |
|
Incluso cuando se aplican todas estas reglas y políticas, no protegen contra escrituras simultáneas (ver Situación A). Protegen contra sobrescrituras completadas secuenciales (ver Situación B). |
Situación A: Escrituras concurrentes (sin protección)
/mybucket/important.doc PUT#1 ---> OK PUT#2 -------> OK
Situación B: Sobrescrituras secuenciales completadas (protegidas contra)
/mybucket/important.doc PUT#1 -------> PUT#2 ---X (denied)