Utilice las políticas de acceso de bloques y grupos
StorageGRID utiliza el lenguaje de políticas de Amazon Web Services (AWS) para permitir que los inquilinos S3 controlen el acceso a bloques y objetos dentro de esos bloques. El sistema StorageGRID implementa un subconjunto del lenguaje de políticas de la API DE REST de S3. Las políticas de acceso para la API de S3 se escriben en JSON.
Información general sobre las políticas de acceso
Existen dos tipos de políticas de acceso compatibles con StorageGRID.
-
Políticas de bloque, que se configuran mediante las operaciones API Get Bucket, PUT Bucket y DELETE Bucket Policy S3. Las políticas de bloque se asocian a bloques, por lo que se configuran para controlar el acceso de los usuarios de la cuenta de propietario del bloque u otras cuentas al bloque y a los objetos en él. La política de bloques se aplica únicamente a un bloque 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 directivas de grupo se asocian a un grupo de la cuenta, por lo que se configuran para permitir que dicho grupo tenga acceso a recursos específicos propiedad de dicha cuenta. La política de grupo se aplica únicamente a un grupo y, posiblemente, a varios bloques.
No hay ninguna diferencia de prioridad entre las políticas de grupo y de bloque. |
Las políticas de bloque y grupo de StorageGRID siguen una gramática específica definida por Amazon. Dentro de cada política hay una serie de declaraciones de política y cada sentencia contiene los siguientes elementos:
-
ID de sentencia (Sid) (opcional)
-
Efecto
-
Principal/NotPrincipal
-
Recurso/NotResource
-
Acción/NotAction
-
Condición (opcional)
Las sentencias de directiva se crean utilizando esta estructura para especificar permisos: Conceda <Effect> para permitir/denegar que <Principal> ejecute <Action> en <Resource> cuando se aplique <Condition>.
Cada elemento de directiva se utiliza para una función específica:
Elemento | Descripción |
---|---|
SID |
El elemento Sid es opcional. El Sid sólo se ha diseñado como una descripción para el usuario. El sistema StorageGRID lo almacena pero no lo interpreta. |
Efecto |
Utilice el elemento Effect para establecer si se permiten o deniegan las operaciones especificadas. Debe identificar las operaciones que permite (o deniega) en cubos u objetos utilizando las palabras clave del elemento Acción admitido. |
Principal/NotPrincipal |
Puede permitir a los usuarios, grupos y cuentas acceder a recursos específicos y realizar 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, sólo la raíz de la cuenta tiene acceso a los recursos que pertenecen a la cuenta. Sólo es necesario especificar el elemento Principal en una política de bloque. Para las directivas de grupo, el grupo al que se asocia la directiva es el elemento Principal implícito. |
Recurso/NotResource |
El elemento Resource identifica los bloques y los objetos. Puede permitir o denegar permisos para cubos y objetos utilizando el nombre de recurso de Amazon (ARN) para identificar el recurso. |
Acción/NotAction |
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 recurso. Se deniega el acceso a menos que asigne permisos de forma específica, pero puede utilizar Denegar explícito para anular un permiso otorgado por otra directiva. |
Condición |
El elemento Condition es opcional. Las condiciones permiten crear expresiones para determinar cuándo se debe aplicar una directiva. |
En el elemento Action , 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 Resource , puede utilizar los caracteres comodín (*) y (?). Aunque el asterisco (*) coincide con 0 o más caracteres, el signo de interrogación (?) coincide con cualquier carácter.
En el elemento Principal, no se admiten caracteres comodín excepto para establecer el acceso anónimo, que otorga permiso a todos. Por ejemplo, el comodín (*) se establece como el valor Principal.
"Principal":"*"
En el ejemplo siguiente, la instrucción utiliza los elementos Effect, Principal, Acción y recurso. En este ejemplo se muestra una sentencia de directiva de bloque completa que utiliza el efecto "permitir" para dar a los principales, el grupo admin federated-group/admin
y el grupo financiero federated-group/finance
, Permisos para realizar la acción s3:ListBucket
en el bloque llamado mybucket
Y la Acción s3:GetObject
en todos los objetos dentro de ese cucharón.
{ "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:iam:s3:::mybucket", "arn:aws:iam:s3:::mybucket/*" ] } ] }
La política de bloque 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 5,120 bytes.
Configuración de control de coherencia para políticas
De forma predeterminada, cualquier actualización que realice a las directivas de grupo será consistente. Una vez que la política de grupo sea coherente, los cambios pueden tardar 15 minutos más en aplicarse, debido al almacenamiento en caché de políticas. De forma predeterminada, las actualizaciones que realice en las políticas de bloques también serán coherentes.
Según sea necesario, puede cambiar las garantías de coherencia para las actualizaciones de la política de bloques. Por ejemplo, es posible que desee que un cambio en una política de bloque se convierta en una Lo antes posible. efectiva por motivos de seguridad.
En este caso, puede ajustar la Consistency-Control
En la solicitud DE política PUT Bucket, o puede utilizar la solicitud DE consistencia PUT Bucket. Al cambiar el control de coherencia para esta solicitud, debe utilizar el valor all, que ofrece la mayor garantía de coherencia de lectura tras escritura. Si especifica cualquier otro valor de control de consistencia en un encabezado para LA solicitud DE consistencia PUT Bucket, la solicitud será rechazada. Si especifica cualquier otro valor para una solicitud DE política PUT Bucket, el valor se ignorará. Una vez que una política de bloques se vuelve coherente, los cambios pueden tardar 8 segundos más en aplicarse, debido al almacenamiento en caché de la política.
Si establece el nivel de consistencia en all para forzar la aplicación de una nueva política de cucharón antes, asegúrese de volver a establecer el control de nivel de cucharón en su valor original cuando haya terminado. De lo contrario, todas las solicitudes de segmentos futuras utilizarán la configuración all. |
Utilice ARN en las declaraciones de política
En las declaraciones de política, el ARN se utiliza en los elementos Principal y Recursos.
-
Utilice esta sintaxis para especificar el recurso ARN de S3:
arn:aws:s3:::bucket-name arn:aws:s3:::bucket-name/object_key
-
Utilice esta sintaxis para especificar el recurso de identidad ARN (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 de objeto.
-
Los caracteres internacionales, que se pueden especificar en la clave de objeto, deben codificarse mediante JSON UTF-8 o mediante secuencias de escape JSON \u. No se admite el porcentaje de codificación.
El cuerpo de solicitud HTTP para la operación DE política PUT Bucket debe codificarse con charset=UTF-8.
Especifique recursos en una política
En las sentencias de directiva, puede utilizar el elemento Resource para especificar el bloque o el objeto para el que se permiten o deniegan los permisos.
-
Cada instrucción de directiva requiere un elemento Resource. En una política, el elemento denota los recursos
Resource`o bien, `NotResource
para la exclusión. -
Se especifican recursos con un ARN de recurso S3. Por ejemplo:
"Resource": "arn:aws:s3:::mybucket/*"
-
También puede usar variables de política dentro de la clave de objeto. Por ejemplo:
"Resource": "arn:aws:s3:::mybucket/home/${aws:username}/*"
-
El valor del recurso puede especificar un bucket que todavía no existe cuando se crea una política de grupo.
Especifique los principales en una directiva
Utilice el elemento Principal para identificar al usuario, grupo o cuenta de arrendatario que la sentencia de directiva permite o deniega el acceso al recurso.
-
Cada sentencia de política de una política de bloque debe incluir un elemento Principal. Las sentencias de política de una política de grupo no necesitan el elemento Principal porque se entiende que el grupo es el principal.
-
En una política, los directores son denotados por el elemento «'Principal,'» o «'NotPrincipal» para la exclusión.
-
Las identidades basadas en cuentas se deben especificar mediante un ID o un ARN:
"Principal": { "AWS": "account_id"} "Principal": { "AWS": "identity_arn" }
-
En este ejemplo se 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 sólo la raíz de la cuenta:
"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 ("managers"):
"Principal": { "AWS": "arn:aws:iam::27233906934684427525:federated-group/Managers" }
-
Puede especificar un principal anónimo:
"Principal": "*"
-
Para evitar ambigüedades, puede utilizar el UUID de 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 ha eliminado. Si un nuevo Alex se une a la organización y se le asigna la mismaAlex
nombre de usuario, es posible que el nuevo usuario herede sin querer los permisos concedidos al usuario original. -
El valor principal puede especificar un nombre de grupo/usuario que aún no existe cuando se crea una directiva de bloque.
Especificar permisos en una directiva
En una directiva, el elemento Acción se utiliza para permitir/denegar permisos a un recurso. Hay un conjunto de permisos que puede especificar en una directiva, que se indican mediante el elemento "Acción" o, alternativamente, "NotAction" para la exclusión. Cada uno de estos elementos se asigna a operaciones de API de REST de S3 específicas.
En las tablas se enumeran los permisos que se aplican a los bloques y los permisos que se aplican a los objetos.
Amazon S3 utiliza ahora el permiso s3:PutReplicationConfiguration para LAS acciones de replicación PUT y DELETE Bucket. StorageGRID utiliza permisos independientes para cada acción, que coinciden con la especificación original de Amazon S3. |
SE realiza UNA ELIMINACIÓN cuando se utiliza UNA PUESTA para sobrescribir un valor existente. |
Permisos que se aplican a los bloques
Permisos | OPERACIONES DE LA API DE REST DE S3 | Personalizado para StorageGRID |
---|---|---|
s3:CreateBucket |
COLOQUE el cucharón |
|
s3:DeleteBucket |
ELIMINAR bloque |
|
s3:DeleteBucketMetadataNotification |
DELETE bucket metadata notification Configuration |
Sí |
s3:DeleteBucketPolicy |
ELIMINE la política de bloques |
|
s3:DeleteReplicationConfiguration |
DELETE Bucket replicación |
Sí, separe los permisos PARA PUT y DELETE* |
s3:GetBucketAcl |
GET Bucket ACL |
|
s3:GetBucketCompliance |
CUMPLIMIENTO de LA normativa GET Bucket (obsoleto) |
Sí |
s3:GetBucketConsistency |
OBTENGA coherencia de bloques |
Sí |
s3: GetBucketCORS |
OBTENGA los cors del cucharón |
|
s3:GetEncryptionConfiguration |
OBTENGA el cifrado de bloque |
|
s3:GetBucketLastAccessTime |
HORA de último acceso al bloque DE GET |
Sí |
s3:GetBucketLocation |
OBTENER ubicación de bloque |
|
s3:GetBucketMetadataNotification |
OBTENGA la configuración de notificación de metadatos del bloque de datos |
Sí |
s3:GetBucketNotification |
OBTENGA la notificación DE BUCKET |
|
s3:GetBucketObjectLockConfiguration |
OBTENER configuración de bloqueo de objeto |
|
s3:GetBucketPolicy |
OBTENGA la política de bloques |
|
s3:GetBucketTagging |
GET Bucket tagging |
|
s3:GetBucketVersioning |
OBTENGA el control de versiones de Bucket |
|
s3:GetLifecycleConfiguration |
OBTENGA el ciclo de vida de la cuchara |
|
s3:GetReplicationConfiguration |
OBTENGA la replicación de Bucket |
|
s3:ListAllMyBuckets |
|
Sí, PARA OBTENER el uso del almacenamiento |
s3:ListBucket |
|
|
s3:ListBucketMultipartUploads |
|
|
s3:ListBucketVersions |
OBTENGA las versiones DE Bucket |
|
s3:PutBucketCompliance |
CUMPLIMIENTO de PUT Bucket (obsoleto) |
Sí |
s3:PutBucketConsistency |
PONGA la consistencia del cucharón |
Sí |
s3: PutBucketCORS |
|
|
s3:PutEncryptionConfiguration |
|
|
s3:PutBucketLastAccessTime |
PUT Bucket última hora de acceso |
Sí |
s3:PutBucketMetadataNotification |
PUT bucket metadata notification Configuration |
Sí |
s3:PutBucketNotification |
NOTIFICACIÓN DE PUT Bucket |
|
s3:PutBucketObjectLockConfiguration |
|
|
s3:PutBucketPolicy |
POLÍTICA DE PUT Bucket |
|
s3:PutBucketEtiquetado |
|
|
s3:PutBucketVersioning |
PONER creación de versiones de bloques |
|
s3:PutLipeycleConfiguration |
|
|
s3:PutReplicationConfiguration |
PUT Bucket replication |
Sí, separe los permisos PARA PUT y DELETE* |
Permisos que se aplican a objetos
Permisos | OPERACIONES DE LA API DE REST DE S3 | Personalizado para StorageGRID |
---|---|---|
s3:AbortMultipartUpload |
|
|
s3:BypassGovernanceRetention |
|
|
s3:DeleteObject |
|
|
s3:DeleteObjectTagging |
ELIMINAR etiquetado de objetos |
|
s3:DeleteObjectVersionTagging |
ELIMINAR etiquetado de objetos (una versión específica del objeto) |
|
s3:DeleteObjectVersion |
ELIMINAR objeto (una versión específica del objeto) |
|
s3:GetObject |
|
|
s3:GetObjectAcl |
OBTENER ACL de objeto |
|
s3:GetObjectLegalHold |
OBTENER retención legal de objetos |
|
s3:GetObjectRetention |
OBTENGA retención de objetos |
|
s3:GetObjectTagging |
OBTENER etiquetado de objetos |
|
s3:GetObjectVersionTagging |
OBTENER etiquetado de objetos (una versión específica del objeto) |
|
s3:GetObjectVersion |
GET Object (una versión específica del objeto) |
|
s3:ListMultipartUploadParts |
Elementos de lista, restauración POSTERIOR al objeto |
|
s3:PutObject |
|
|
s3:PutObjectLegalHold |
PONER objeto legal |
|
s3:PutObjectRetention |
PUT Object retention |
|
s3:PutObjectEtiquetado |
PONER etiquetado de objetos |
|
s3:PutObjectVersionEtiquetado |
PONER etiquetado de objetos (una versión específica del objeto) |
|
s3:PutOverwriteObject |
|
Sí |
s3:RestoreObject |
Restauración DE objetos posterior |
Utilice el permiso PutOverwriteObject
el permiso s3:PutOverwriteObject es un permiso StorageGRID personalizado que se aplica a operaciones que crean o actualizan objetos. La configuración de este permiso determina si el cliente puede sobrescribir los datos de un objeto, metadatos definidos por el usuario o el etiquetado de objetos S3.
Entre los posibles ajustes para este permiso se 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 de objetos S3 no se pueden sobrescribir.
-
Se cancela cualquier operación de ingesta en curso y se devuelve un error.
-
Si se habilita el control de versiones de S3, la configuración Denegar evita QUE LAS operaciones PUT Object tagging o DELETE Object tagging modifiquen el conjunto de etiquetas para 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 se estableció permitir.
Si la directiva S3 actual permite la sobrescritura y el permiso PutOverwriteObject se establece en Deny, el cliente no puede sobrescribir los datos de un objeto, los metadatos definidos por el usuario ni el etiquetado de objetos. Además, si la casilla de verificación Evitar modificación de cliente está seleccionada (CONFIGURACIÓN > Ajustes de seguridad > Red y objetos), esa configuración anula la configuración del permiso PutOverwriteObject. |
Especificar condiciones en una política
Las condiciones definen cuándo estará en vigor una política. Las condiciones consisten en operadores y pares clave-valor.
Condiciones Utilice pares clave-valor para la evaluación. Un elemento Condition puede contener varias condiciones y cada condición puede contener varios pares clave-valor. El bloque Condition utiliza el siguiente formato:
Condition: { condition_type: { condition_key: condition_values
En el ejemplo siguiente, 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 categorizan de la siguiente manera:
-
Cadena
-
Numérico
-
Booleano
-
Dirección IP
-
Comprobación nula
Operadores de condición | Descripción |
---|---|
StringEquals |
Compara una clave con un valor de cadena basado en la coincidencia exacta (distingue entre mayúsculas y minúsculas). |
StringNotEquals |
Compara una clave con un valor de cadena basado en la coincidencia negada (distingue entre mayúsculas y minúsculas). |
StringEqualizsIgnoreCase |
Compara una clave con un valor de cadena basado en la coincidencia exacta (omite Case). |
StringNotEqualizsIgnoreCase |
Compara una clave con un valor de cadena basado en la coincidencia negada (omite Case). |
StringLike |
Compara una clave con un valor de cadena basado en la coincidencia exacta (distingue entre mayúsculas y minúsculas). Puede incluir * y ? caracteres comodín. |
StringNotLike |
Compara una clave con un valor de cadena basado en la coincidencia negada (distingue entre mayúsculas y minúsculas). Puede incluir * y ? caracteres comodín. |
Valores numéricos |
Compara una clave con un valor numérico basado en la coincidencia exacta. |
NumericNotEquals |
Compara una clave con un valor numérico basado en la coincidencia negada. |
NumericGreatertan |
Compara una clave con un valor numérico basado en la coincidencia "'mayor que'". |
NumericGreaterThanEquals |
Compara una clave con un valor numérico basado en la coincidencia "'mayor que o igual'". |
NumericLessThan |
Compara una clave con un valor numérico basado en la coincidencia "'less than'". |
NumericLesThanEquals |
Compara una clave con un valor numérico basado en la coincidencia "'menor que o igual'". |
Bool |
Compara una clave con un valor booleano basado en la coincidencia "'true o false'". |
IPAddress |
Compara una clave con una dirección IP o un rango de direcciones IP. |
NotIpAddress |
Compara una clave con una dirección IP o un intervalo de direcciones IP basándose en la coincidencia negada. |
Nulo |
Comprueba si hay una clave de condición en el contexto actual de la solicitud. |
Teclas de condición compatibles
Categoría | Teclas de condición aplicables | Descripción |
---|---|---|
Operadores IP |
aws:SourceIp |
Comparará con la dirección IP desde la que se envió la solicitud. Se puede utilizar para operaciones de bloques u objetos. Nota: Si la solicitud S3 se envió a través del servicio Load Balancer en nodos Admin y nodos de Gpuertas de enlace, se comparará con la dirección IP anterior al servicio Load Balancer. Nota: Si se utiliza un equilibrador de carga no transparente de terceros, se comparará con la dirección IP de ese equilibrador de carga. Cualquiera |
Recurso/identidad |
aws:nombre de usuario |
Comparará con el nombre de usuario del remitente desde el que se envió la solicitud. Se puede utilizar para operaciones de bloques u objetos. |
s3:ListBucket y. s3:ListBucketVersions permisos |
s3:delimitador |
Comparará con el parámetro delimitador especificado en una solicitud GET Bucket o GET Bucket Object Versions. |
s3:ListBucket y. s3:ListBucketVersions permisos |
s3:max-keys |
Comparará con el parámetro max-keys especificado en una solicitud GET Bucket o GET Bucket Object Versions. |
s3:ListBucket y. s3:ListBucketVersions permisos |
s3:prefijo |
Se comparará con el parámetro prefix especificado en una solicitud GET Bucket o GET Bucket Object Versions. |
s3:PutObject |
s3:retención-días restante del bloqueo de objetos |
Compara con la fecha de retención hasta especificada en
|
s3:PutObjectRetention |
s3:retención-días restante del bloqueo de objetos |
Compara con la fecha de retención especificada en la solicitud DE RETENCIÓN DE objeto PUT para garantizar que se encuentra dentro del intervalo permitido. |
Especifique las variables en una política
Las variables de las directivas se pueden utilizar para rellenar la información de directivas cuando esté disponible. Se pueden usar variables de política en la Resource
comparaciones entre elementos y cadenas en la Condition
elemento.
En este ejemplo, la variable ${aws:username}
Forma parte del elemento Resource:
"Resource": "arn:aws:s3:::bucket-name/home/${aws:username}/*"
En este ejemplo, la variable ${aws:username}
forma parte del valor de condición en el bloque de condición:
"Condition": { "StringLike": { "s3:prefix": "${aws:username}/*" ... }, ...
Variable | Descripción |
---|---|
|
Utiliza la clave SourceIp como la variable proporcionada. |
|
Utiliza la clave de nombre de usuario como la variable proporcionada. |
|
Utiliza la clave de prefijo específica del servicio como variable proporcionada. |
|
Utiliza la clave de max-keys específica del servicio como la variable proporcionada. |
|
Carácter especial. Utiliza el carácter como carácter literal *. |
|
Carácter especial. Utiliza el carácter como literal ? carácter. |
|
Carácter especial. Utiliza el carácter como carácter literal $. |
Crear directivas que requieran un manejo especial
A veces, una directiva puede otorgar permisos peligrosos para la seguridad o para operaciones continuas, como bloquear al usuario raíz de la cuenta. La implementación de la API REST de StorageGRID S3 es menos restrictiva durante la validación de políticas que Amazon, pero igual de estricta durante la evaluación de la política.
Descripción de la política | Tipo de política | Comportamiento de Amazon | Comportamiento de StorageGRID |
---|---|---|---|
Denegar a sí mismo cualquier permiso a la cuenta raíz |
Cucharón |
Válido y reforzado, pero la cuenta de usuario raíz conserva el permiso para todas las operaciones de política de bloques de S3 |
Igual |
Denegar a sí mismo cualquier permiso al usuario o grupo |
Grupo |
Válido y reforzado |
Igual |
Permitir cualquier permiso para un grupo de cuentas externo |
Cucharón |
Principal no válido |
Válidos, pero los permisos para todas las operaciones de política de bloques de S3 devuelven un método 405 no permitido cuando lo permite una política |
Permitir cualquier permiso para una raíz de cuenta externa o para un usuario |
Cucharón |
Válidos, pero los permisos para todas las operaciones de política de bloques de S3 devuelven un método 405 no permitido cuando lo permite una política |
Igual |
Permitir que todos tengan permisos para todas las acciones |
Cucharón |
Válido, pero los permisos para todas las operaciones de política de bloques de S3 devuelven un error de método 405 no permitido para la raíz de cuenta externa y los usuarios |
Igual |
Denegar a todos los permisos a todas las acciones |
Cucharón |
Válido y reforzado, pero la cuenta de usuario raíz conserva el permiso para todas las operaciones de política de bloques de S3 |
Igual |
Principal es un usuario o grupo inexistente |
Cucharón |
Principal no válido |
Válido |
El recurso es un bloque de S3 que no existe |
Grupo |
Válido |
Igual |
El director es un grupo local |
Cucharón |
Principal no válido |
Válido |
La directiva otorga a una cuenta que no es propietaria (incluidas las cuentas anónimas) permisos para COLOCAR objetos |
Cucharón |
Válido. Los objetos son propiedad de la cuenta creadora y la política de bucket no se aplica. La cuenta de creador debe otorgar permisos de acceso al objeto mediante ACL de objeto. |
Válido. Los objetos son propiedad de la cuenta de propietario del bloque. Se aplica la política de bloques. |
Protección WORM (escritura única lectura múltiple)
Se pueden crear bloques DE escritura única y lectura múltiple (WORM) para proteger los datos, los metadatos de objetos definidos por el usuario y el etiquetado de objetos de S3. Puede configurar los bloques WORM para permitir la creación de objetos nuevos y evitar sobrescrituras o eliminaciones del contenido existente. Utilice uno de los enfoques aquí descritos.
Para asegurarse de que las sobrescrituras se deniegan siempre, puede:
-
En Grid Manager, vaya a CONFIGURACIÓN > SEGURIDAD > CONFIGURACIÓN DE SEGURIDAD > RED AND OBJECTS y seleccione la casilla de verificación Evitar modificación del cliente.
-
Aplique las siguientes reglas y políticas de S3:
-
Agregue una operación PUTOVERWRITEOBJECT DENY a la directiva S3.
-
Agregue una operación DeleteObject DENY a la directiva S3.
-
Añada una operación PUT Object ALLOW a la política de S3.
-
Al establecer DeleteObject en DENEGAR en una directiva S3, no se impide que ILM elimine objetos cuando existe una regla como "'copias cero después de 30 días'". |
Incluso cuando se aplican todas estas reglas y políticas, no protegen frente a escrituras simultáneas (consulte la situación A). Protegen contra sobrescrituras completadas secuenciales (consulte la situación B). |
Situación A: Escrituras simultáneas (no protegidas contra)
/mybucket/important.doc PUT#1 ---> OK PUT#2 -------> OK
Situación B: Sobrescrituras completadas secuenciales (protegidas contra)
/mybucket/important.doc PUT#1 -------> PUT#2 ---X (denied)