Detalles de Object Storage y Archive Storage

En este tema, se tratan los detalles de la escritura de políticas para controlar el acceso a Archive Storage y Object Storage.

Consejo

La función de políticas de ciclo de vida de objetos necesita que otorgue permisos al servicio Object Storage para archivar y suprimir objetos en su nombre. Consulte Uso de políticas de ciclo de vida de objetos para obtener más información.

Tipos de recursos

Tipos de recursos Individuales

objectstorage-namespaces

buckets

objects

Tipo de recurso agregado

object-family

Una política que utiliza <verb> object-family equivale a escribir una política con una sentencia <verb> <individual resource-type> independiente para cada uno de los tipos de recursos individuales.

Consulte en la tabla Detalles de combinaciones de verbo + tipo de recurso los detalles de las operaciones de API que cubre cada verbo para cada tipo de recurso individual incluido en object-family.

Variables soportadas

Object Storage soporta todas las variables generales (consulte Variables generales para todas las solicitudes), además de las que se muestran aquí:

Operaciones para este tipo de recurso... Puede utilizar esta variable Tipo de variable Comentarios
buckets y objects target.bucket.name Cadena y patrones Utilice esta variable para controlar el acceso a un cubo específico. Importante: La coincidencia de condiciones no es sensible a mayúsculas/minúsculas. Si tiene un cubo denominado "BucketA" y un cubo denominado "bucketA", la condición where target.bucket.name="BucketA" se aplica a ambos. Para evitar posibles problemas con los nombres de recursos de la política, proporcione a sus recursos nombres diferenciados.
buckets y objects target.bucket.tag.<TagNamespace>.<TagKeyDefinition> Cadena Utilice esta variable para controlar el acceso a los cubos que tienen la etiqueta específica. Consulte Permitir a los usuarios escribir objetos en los cubos de Object Storage. Importante: no puede utilizar esta variable para operaciones CreateBucket y operaciones que impliquen varios cubos, como ListBucket.
objects target.object.name Cadena y patrones Utilice esta variable para controlar el acceso a un objeto o patrones de objeto específicos.
Nota

Las variables request.ipv4.ipaddress y request.vcn.id están en desuso. En lugar de utilizar estas variables, cree un origen de red para especificar un rango de direcciones IP o un identificador de VCN específico. A continuación, puede utilizar el origen de red de la política para restringir el acceso solo a las solicitudes procedentes de las redes permitidas. Para obtener más información, consulte Descripción general de los orígenes de red.

Detalles de combinaciones de verbo + tipo de recurso

En las siguientes tablas, se muestran los permisos y las operaciones de API que abarca cada verbo. El nivel de acceso es acumulativo al recorrer la progresión inspect > read > use > manage. Por ejemplo, un grupo que puede utilizar un recurso también puede inspeccionar y leer ese recurso. Un signo más (+) en una celda de la tabla indica un acceso incremental en comparación con la celda directamente por encima, mientras que "no extra" indica que no hay acceso incremental.

Para tipos de recursos object-family

objectstorage-namespaces
Verbos Permisos API totalmente cubiertas API parcialmente cubiertas
read OBJECTSTORAGE_NAMESPACE_READ GetNamespace ninguna
use OBJECTSTORAGE_NAMESPACE_READ GetNamespace ninguna
manage OBJECTSTORAGE_NAMESPACE_READ

OBJECTSTORAGE_NAMESPACE_UPDATE

GetNamespace con parámetro opcional compartmentId

GetNamespaceMetadata

UpdateNamespaceMetadata

ninguna
buckets
Verbos Permisos API totalmente cubiertas API parcialmente cubiertas
inspect

BUCKET_INSPECT

HeadBucket

ListBuckets

ninguna

read

INSPECT +

BUCKET_READ

INSPECT +

GetBucket

ListMultipartUploads

GetObjectLifecyclePolicy

GetRetentionRule

ListRetentionRules

GetReplicationPolicy

ListReplicationPolicies

ListReplicationSources

ninguna

use

READ +

BUCKET_UPDATE

READ +

UpdateBucket

DeleteObjectLifecyclePolicy

ReencryptBucket

PutObjectLifecyclePolicy
manage

USE +

BUCKET_CREATE

BUCKET_DELETE

PAR_MANAGE

RETENTION_RULE_MANAGE

RETENTION_RULE_LOCK (si se utiliza el bloqueo de reglas opcional)

USE +

CreateBucket

DeleteBucket

CreatePreauthenticatedRequest

GetPreauthenticatedRequest

ListPreauthenticatedRequest

DeletePreauthenticatedRequest

CreateRetentionRule

UpdateRetentionRule

DeleteRetentionRule

CreateReplicationPolicy, DeleteReplicationPolicy, MakeBucketWritable (estas operaciones también necesitan manage objects)

objects
Verbos Permisos API totalmente cubiertas API parcialmente cubiertas
inspect

OBJECT_INSPECT

HeadObject

ListObjects

ListMultipartUploadParts

ninguna

read

INSPECT +

OBJECT_READ

INSPECT +

GetObject

ninguna

use

READ +

OBJECT_OVERWRITE

READ +

ReencryptObject

READ +

PutObject (USE permite a PutObject sobrescribir objetos existentes, pero la creación de un nuevo objeto también necesita OBJECT_CREATE)

CreateMultipartUpload, UploadPart y CommitMultipartUpload (también necesitan manage objects)

manage

USE +

OBJECT_CREATE

OBJECT_DELETE

OBJECT_VERSION_DELETE

OBJECT_RESTORE

OBJECT_UPDATE_TIER

USE +

CreateObject

RenameObject

RestoreObject

DeleteObject

DeleteObjectVersion

UpdateObjectStorageTier

CreateMultipartUpload

UploadPart

CommitMultipartUpload

AbortMultipartUpload

PutObjectLifecyclePolicy (también necesita manage objects)

CreateReplicationPolicy, DeleteReplicationPolicy, MakeBucketWritable (estas operaciones también necesitan manage buckets)

 

Permisos necesarios para cada operación de API

En la siguiente tabla, se muestran las operaciones de API en un orden lógico, agrupadas por tipo de recurso.

Para obtener más información sobre los permisos, consulte Permisos.

Operación de API Permisos necesarios para utilizar la operación
GetNamespace

La API no requiere permisos y devuelve el espacio de nombres del emisor de llamada. Utilice la API para validar sus credenciales.

El permiso OBJECTSTORAGE_NAMESPACE_READ es necesario si incluye el parámetro opcional compartmentId. Utilice el parámetro compartmentId para buscar el espacio de nombres de un arrendamiento de terceros.

GetNamespaceMetadata OBJECTSTORAGE_NAMESPACE_READ
UpdateNamespaceMetadata OBJECTSTORAGE_NAMESPACE_UPDATE
CreateBucket BUCKET_CREATE

Si el ID de clave de KMS se proporciona a la operación, se requieren los siguientes permisos adicionales:

  • KEY_ASSOCIATE
  • El asunto objectstorage-<location> también debe tener: KEY_ENCRYPT, KEY_DECRYPT, KEY_READ.
UpdateBucket BUCKET_UPDATE

Para un cubo cifrado de clave gestionada por el cliente, el asunto objectstorage-<location> también debe tener: KEY_ENCRYPT y KEY_DECRYPT.

GetBucket BUCKET_READ

Para un cubo cifrado con clave gestionada por el cliente, el asunto objectstorage-<location> debe tener KEY_DECRYPT.

HeadBucket BUCKET_INSPECT

Para un cubo cifrado con clave gestionada por el cliente, el asunto objectstorage-<location> debe tener KEY_DECRYPT.

ListBuckets BUCKET_INSPECT
DeleteBucket BUCKET_DELETE
ReencryptBucket BUCKET_UPDATE

El asunto objectstorage-<location> también debe tener: KEY_ENCRYPT y KEY_DECRYPT.

PutObject

El permiso necesario depende de si el objeto ya existe en el cubo:

  • OBJECT_CREATE es necesario cuando no existe un objeto con ese nombre en el cubo.
  • OBJECT_OVERWRITE es necesario cuando ya existe un objeto con ese nombre en el cubo.

Para un cubo cifrado con clave gestionada por el cliente, el asunto objectstorage-<location> debe tener KEY_ENCRYPT.

RenameObject OBJECT_CREATE y OBJECT_OVERWRITE
GetObject OBJECT_READ

Para un cubo cifrado con clave gestionada por el cliente, el asunto objectstorage-<location> debe tener KEY_DECRYPT.

HeadObject OBJECT_READ u OBJECT_INSPECT

Para un cubo cifrado con clave gestionada por el cliente, el asunto objectstorage-<location> debe tener KEY_DECRYPT.

DeleteObject OBJECT_DELETE
DeleteObjectVersion OBJECT_VERSION_DELETE
ListObjects OBJECT_INSPECT
ListObjectVersions OBJECT_INSPECT
ReencryptObject OBJECT_READ, OBJECT_OVERWRITE

Para un cubo cifrado con clave gestionada por el cliente, se necesitan los siguientes permisos:

  • KEY_ASSOCIATE
  • Además, el asunto objectstorage-<location> también debe tener KEY_ENCRYPT, KEY_DECRYPT y KEY_READ.
RestoreObjects OBJECT_RESTORE
UpdateObjectStorageTier OBJECT_UPDATE_TIER
CreateMultipartUpload OBJECT_CREATE y OBJECT_OVERWRITE

Para un cubo cifrado con clave gestionada por el cliente, el asunto objectstorage-<location> debe tener KEY_ENCRYPT.

UploadPart OBJECT_CREATE y OBJECT_OVERWRITE

Para un cubo cifrado con clave gestionada por el cliente, el asunto objectstorage-<location> debe tener KEY_ENCRYPT.

CommitMultipartUpload BUCKET_READ, OBJECT_CREATE, OBJECT_READ y OBJECT_OVERWRITE
ListMultipartUploadParts OBJECT_INSPECT
ListMultipartUploads BUCKET_READ
AbortMultipartUpload OBJECT_DELETE
CreatePreauthenticatedRequest PAR_MANAGE
GetPreauthenticatedRequest PAR_MANAGE o BUCKET_READ
ListPreauthenticatedRequests PAR_MANAGE o BUCKET_READ
DeletePreauthenticatedRequest PAR_MANAGE
PutObjectLifecyclePolicy BUCKET_UPDATE, OBJECT_CREATE y OBJECT_DELETE

Además, el asunto objectstorage-<location> también debe tener: BUCKET_INSPECT, BUCKET_READ, OBJECT_INSPECT.

Si el cubo al que se aplica la política de ciclo de vida es un cubo cifrado de clave gestionada por el cliente, el asunto objectstorage-<location> también debe tener: KEY_ENCRYPT y KEY_DECRYPT.

Si la operación PutObjectLifeCyclePolicy también actualiza el nivel de objeto, por ejemplo, de forma predeterminada a INFREQUENT_ACCESS, al usuario y al asunto objectstorage-<location> se le debe otorgar el permiso OBJECT_UPDATE_TIER.

GetObjectLifecyclePolicy BUCKET_READ

Para un cubo cifrado con clave gestionada por el cliente, el asunto objectstorage-<location> debe tener KEY_DECRYPT.

DeleteObjectLifecyclePolicy BUCKET_UPDATE

Para un cubo cifrado de clave gestionada por el cliente, el asunto objectstorage-<location> también debe tener: KEY_ENCRYPT y KEY_DECRYPT.

CreateRetentionRule BUCKET_UPDATE y RETENTION_RULE_MANAGE (y RETENTION_RULE_LOCK)

Para un cubo cifrado de clave gestionada por el cliente, el asunto objectstorage-<location> también debe tener: KEY_ENCRYPT y KEY_DECRYPT.

GetRetentionRule BUCKET_READ
ListRetentionRule BUCKET_READ
UpdateRetentionRule BUCKET_UPDATE y RETENTION_RULE_MANAGE (y RETENTION_RULE_LOCK)

Para un cubo cifrado de clave gestionada por el cliente, el asunto objectstorage-<location> también debe tener: KEY_ENCRYPT y KEY_DECRYPT.

DeleteRetentionRule BUCKET_UPDATE y RETENTION_RULE_MANAGE

Para un cubo cifrado de clave gestionada por el cliente, el asunto objectstorage-<location> también debe tener: KEY_ENCRYPT y KEY_DECRYPT.

CopyObjectRequest OBJECT_READ y el segundo permiso de usuario necesario depende de si el objeto ya existe en el cubo:
  • OBJECT_CREATE es necesario cuando un objeto con ese nombre ya no existe en el cubo.
  • OBJECT_OVERWRITE es necesario cuando ya existe un objeto con ese nombre en el cubo.

Además, el asunto objectstorage-<location> necesita OBJECT_READ.

Para un cubo cifrado de clave gestionada por el cliente, el asunto objectstorage-<location> también debe tener KEY_ENCRYPT, KEY_DECRYPT.

GetWorkRequest OBJECT_READ
ListWorkRequests OBJECT_INSPECT
CancelWorkRequest OBJECT_DELETE
CreateReplicationPolicy OBJECT_READ, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_INSPECT, OBJECT_DELETE, OBJECT_RESTORE, BUCKET_READ y BUCKET_UPDATE

El asunto objectstorage-<location> debe tener los mismos permisos que el usuario.

GetReplicationPolicy BUCKET_READ
DeleteReplicationPolicy OBJECT_READ, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_INSPECT, OBJECT_DELETE, OBJECT_RESTORE, BUCKET_READ y BUCKET_UPDATE
ListReplicationPolicies BUCKET_READ
ListReplicationSources BUCKET_READ
MakeBucketWritable OBJECT_READ, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_INSPECT, OBJECT_DELETE, BUCKET_READ y BUCKET_UPDATE