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 cubo, que se administran mediante las operaciones de la API GetBucketPolicy, PutBucketPolicy y DeleteBucketPolicy S3 o el administrador de inquilinos o la API de administración de inquilinos. 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":"*"
"Principal":{"AWS":"*"}
En el ejemplo siguiente, la instrucción utiliza los elementos Effect, Principal, Acción y recurso. En este ejemplo se muestra una sentencia de política de bloque completa que utiliza el efecto Permitir para otorgar a los principales, al grupo de administración federated-group/admin
y al grupo financiero federated-group/finance
, permisos para realizar la acción s3:ListBucket
en el bloque denominado mybucket
y la acción s3:GetObject
en todos los objetos de ese bloque.
{ "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 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.
Coherencia de las políticas
De forma predeterminada, cualquier actualización que realice a las directivas de grupo será consistente. Cuando una normativa de grupo es coherente, los cambios pueden tardar 15 minutos adicionales en aplicarse debido al almacenamiento en caché de la política. Por defecto, cualquier actualización que realice en las políticas de depósito es fuertemente coherente.
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 esté disponible durante una interrupción del servicio del sitio.
En este caso, puede establecer Consistency-Control
el encabezado en la solicitud PutBucketPolicy, o puede utilizar la solicitud de consistencia PUT Bucket. Cuando una política de depósito es coherente, los cambios pueden tardar 8 segundos adicionales en aplicarse debido al almacenamiento en caché de la política.
Si establece la consistencia en un valor diferente para resolver una situación temporal, asegúrese de volver a establecer el valor de nivel de cubo en su valor original cuando haya terminado. De lo contrario, todas las solicitudes de bloque futuras utilizarán la configuración modificada. |
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 la solicitud HTTP para la operación PutBucketPolicy debe estar codificado 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, los recursos se indican con el elemento
Resource
, o alternativamente,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 principales se denotan por el elemento Principal o, alternativamente, 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 se elimina el nombre de usuario
Alex
. 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 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 ahora usa el permiso S3:PutReplicationConfiguration para las acciones PutBucketReplication y DeleteBucketReplication. StorageGRID utiliza permisos independientes para cada acción, que coinciden con la especificación original de Amazon S3. |
Se realiza una supresión cuando se utiliza una PUT 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 |
CreateBucket |
Sí. Nota: Usar solo en la política de grupo. |
s3:DeleteBucket |
DeleteBucket |
|
s3:DeleteBucketMetadataNotification |
Configuración de notificaciones de metadatos de DELETE Bucket |
Sí |
s3:DeleteBucketPolicy |
DeleteBucketPolicy |
|
s3:DeleteReplicationConfiguration |
DeleteBucketReplication |
Sí, separe los permisos para PUT y DELETE |
s3:GetBucketAcl |
GetBucketAcl |
|
s3:GetBucketCompliance |
CUMPLIMIENTO de GET Bucket (obsoleto) |
Sí |
s3:GetBucketConsistency |
OBTENGA coherencia de bloques |
Sí |
s3: GetBucketCORS |
GetBucketCors |
|
s3:GetEncryptionConfiguration |
GetBucketEncryption |
|
s3:GetBucketLastAccessTime |
GET Bucket última hora de acceso |
Sí |
s3:GetBucketLocation |
GetBucketLocation |
|
s3:GetBucketMetadataNotification |
OBTENGA la configuración de notificación de metadatos del bloque de datos |
Sí |
s3:GetBucketNotification |
GetBucketNotificationConfiguration |
|
s3:GetBucketObjectLockConfiguration |
GetObjectLockConfiguration |
|
s3:GetBucketPolicy |
GetBucketPolicy |
|
s3:GetBucketTagging |
Etiquetado de GetBucketTagging |
|
s3:GetBucketVersioning |
GetBucketVersioning |
|
s3:GetLifecycleConfiguration |
GetBucketLifecycleConfiguration |
|
s3:GetReplicationConfiguration |
GetBucketReplication |
|
s3:ListAllMyBuckets |
|
Sí, para OBTENER uso de almacenamiento. Nota: Usar solo en la política de grupo. |
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 |
Configuración de notificaciones de metadatos de PUT Bucket |
Sí |
s3:PutBucketNotification |
PutBucketNotificationConfiguration |
|
s3:PutBucketObjectLockConfiguration |
|
|
s3:PutBucketPolicy |
Política de PutBucketPolicy |
|
s3:PutBucketEtiquetado |
|
|
s3:PutBucketVersioning |
PutBucketVersioning |
|
s3:PutLipeycleConfiguration |
|
|
s3:PutReplicationConfiguration |
PutBucketReplication |
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 |
DeleteObjectTagging |
|
s3:DeleteObjectVersionTagging |
DeleteObjectTagging (una versión específica del objeto) |
|
s3:DeleteObjectVersion |
DeleteObject (una versión específica del objeto) |
|
s3:GetObject |
|
|
s3:GetObjectAcl |
GetObjectAcl |
|
s3:GetObjectLegalHold |
GetObjectLegalHold |
|
s3:GetObjectRetention |
GetObjectRetention |
|
s3:GetObjectTagging |
GetObjectEtiquetado |
|
s3:GetObjectVersionTagging |
GetObjectTagging (una versión específica del objeto) |
|
s3:GetObjectVersion |
GetObject (una versión específica del objeto) |
|
s3:ListMultipartUploadParts |
ListParts, RestoreObject |
|
s3:PutObject |
|
|
s3:PutObjectLegalHold |
PutObjectLegalHold |
|
s3:PutObjectRetention |
PutObjectRetention |
|
s3:PutObjectEtiquetado |
PutObjectEtiquetado |
|
s3:PutObjectVersionEtiquetado |
PutObjectTagging (una versión específica del objeto) |
|
s3:PutOverwriteObject |
|
Sí |
s3:RestoreObject |
RestoreObject |
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 el control de versiones S3 está activado, la configuración Denegar impide que las operaciones PutObjectTagging o DeleteObjectTagging modifiquen el TagSet 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 caracteres comodín * y ?. |
StringNotLike |
Compara una clave con un valor de cadena basado en la coincidencia negada (distingue entre mayúsculas y minúsculas). Puede incluir caracteres comodín * y ?. |
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 en función de la coincidencia mayor o igual que. |
NumericLessThan |
Compara una clave con un valor numérico basado en la coincidencia menor que. |
NumericLesThanEquals |
Compara una clave con un valor numérico en función de la coincidencia menor o igual que. |
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
Teclas de condición | Acciones | Descripción |
---|---|---|
aws:SourceIp |
Operadores IP |
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. Cualquier |
aws:nombre de usuario |
Recurso/identidad |
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:delimitador |
s3:ListBucket y. s3:ListBucketVersions permisos |
Se comparará con el parámetro delimitador especificado en una solicitud ListObjects o ListObjectVersions. |
S3:ExistingObjectTag/<tag-key> |
s3:DeleteObjectTagging s3:DeleteObjectVersionTagging s3:GetObject s3:GetObjectAcl 3:GetObjectTagging s3:GetObjectVersion s3:GetObjectVersionAcl s3:GetObjectVersionTagging S3:PutObjectAcl s3:PutObjectEtiquetado S3:PutObjectVersionAcl s3:PutObjectVersionEtiquetado |
Requerirá que el objeto existente tenga la clave de etiqueta y el valor específicos. |
s3:max-keys |
s3:ListBucket y. s3:ListBucketVersions permisos |
Se compara con el parámetro max-keys especificado en una solicitud ListObjects o ListObjectVersions. |
s3:retención-días restante del bloqueo de objetos |
s3:PutObject |
Se compara con la fecha de retención especificada en
|
s3:retención-días restante del bloqueo de objetos |
s3:PutObjectRetention |
Se compara con la fecha de retención especificada en la solicitud PutObjectRetention para asegurarse de que se encuentra dentro del rango permitido. |
s3:prefijo |
s3:ListBucket y. s3:ListBucketVersions permisos |
Se comparará con el parámetro PreFIX especificado en una solicitud ListObjects o ListObjectVersions. |
S3:RequestObjectTag/<tag-key> |
s3:PutObject s3:PutObjectEtiquetado s3:PutObjectVersionEtiquetado |
Requerirá una clave y un valor de etiqueta específicos cuando la solicitud del objeto incluya el etiquetado. |
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. 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}
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 un carácter literal ?. |
|
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 |
Policy otorga a una cuenta no 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.
-
Agregue una operación PutObject ALLOW a la política S3.
-
Si se configura DeleteObject como DENEGADO en una política de S3, ILM no impide que elimine objetos cuando existe una regla como «copias cero tras 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)