Skip to main content
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

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.

Nota 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.

Nota 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 mismo Alex 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.

Nota 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.
Nota 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

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)

s3: Obtener consistencia del cubo

Obtener consistencia del bucket

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

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

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

  • Lista de cubos

  • Uso de almacenamiento GET

Sí, para el uso de almacenamiento GET.

Nota: Úselo solo en políticas de grupo.

s3:ListBucket

  • Lista de objetos

  • Cubo de cabeza

  • Restaurar objeto

s3:ListBucketMultipartUploads

  • Lista de cargas de varias partes

  • Restaurar objeto

s3:ListBucketVersions

GET Versiones del Bucket

s3:Cumplimiento de PutBucket

Cumplimiento del contenedor PUT (obsoleto)

s3:Consistencia del cubo de colocación

Consistencia del depósito PUT

s3:PonerCuboCORS

  • EliminarBucketCors†

  • PonerBucketCors

s3:PonerConfiguraciónDeCifrado

  • Eliminar cifrado del cubo

  • Cifrado de PutBucket

s3:PonerBucketÚltimoAccesoHora

Hora del último acceso al depósito PUT

s3:Notificación de metadatos de PutBucket

Configuración de notificación de metadatos del depósito PUT

s3:Notificación de depósito de colocación

Configuración de notificación de PutBucket

s3:Configuración de bloqueo de objeto PutBucket

  • CreateBucket con el x-amz-bucket-object-lock-enabled: true encabezado de solicitud (también requiere el permiso s3:CreateBucket)

  • Configuración de bloqueo de objeto de colocación

s3:Política de depósito de colocación

Política de depósito de basura

s3:Etiquetado de cubo de colocación

  • Eliminar etiquetado de cubos†

  • Etiquetado de PutBucket

s3:Versión de PutBucket

Versiones de PutBucket

s3:Configuración del ciclo de vida de PutLifecycle

  • Eliminar ciclo de vida del cubo†

  • Configuración del ciclo de vida de PutBucket

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

  • AbortarMultipartUpload

  • Restaurar objeto

s3: Retención de gobernanza de bypass

  • Eliminar objeto

  • Eliminar objetos

  • PonerRetenciónDeObjeto

s3:EliminarObjeto

  • Eliminar objeto

  • Eliminar objetos

  • Restaurar objeto

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

  • Obtener objeto

  • Objeto principal

  • Restaurar objeto

  • Seleccionar contenido del 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

  • PonerObjeto

  • Copiar objeto

  • Restaurar objeto

  • Crear carga de varias partes

  • Carga completa de varias partes

  • Subir parte

  • Subir copia parcial

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

  • PonerObjeto

  • Copiar objeto

  • Etiquetado de objetos puestos

  • Eliminar etiquetado de objetos

  • Carga completa de varias partes

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.

Nota 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 X-Forwarded-For El encabezado se ignorará porque no se puede determinar su validez.

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 x-amz-object-lock-retain-until-date encabezado de solicitud o calculado a partir del período de retención predeterminado del depósito para asegurarse de que estos valores estén dentro del rango permitido para las siguientes solicitudes:

  • PonerObjeto

  • Copiar objeto

  • Crear carga de varias partes

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

${aws:SourceIp}

Utiliza la clave SourceIp como variable proporcionada.

${aws:username}

Utiliza la clave de nombre de usuario como variable proporcionada.

${s3:prefix}

Utiliza la clave de prefijo específica del servicio como la variable proporcionada.

${s3:max-keys}

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.

Nota 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".
Nota 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)