Dettagli per lo storage degli oggetti e lo storage di archivio

In questo argomento vengono descritti i dettagli relativi alla scrittura dei criteri per controllare l'accesso allo storage di archivio e allo storage degli oggetti.

Suggerimento

La funzione dei criteri del ciclo di vita degli oggetti richiede di concedere le autorizzazioni al servizio di storage degli oggetti per archiviare ed eliminare gli oggetti per conto dell'utente. Per ulteriori informazioni, vedere Uso dei criteri del ciclo di vita degli oggetti.

Resource-Types

Singola risorsa - Tipi

objectstorage-namespaces

buckets

objects

Tipo di risorsa aggregata

object-family

Un criterio che utilizza <verb> object-family equivale a scriverne uno con un'istruzione <verb> <individual resource-type> separata per ciascuno dei singoli tipi di risorsa.

Per i dettagli delle operazioni API coperte da ciascun verbo, per ogni singolo tipo di risorsa incluso in object-family, vedere la tabella in Dettagli per combinazioni Verb + Tipo di risorsa.

Variabili supportate

Lo storage degli oggetti supporta tutte le variabili generali (vedere Variabili generali per tutte le richieste), oltre a quelle elencate di seguito.

Operazioni per questo tipo di risorsa... Può utilizzare questa variabile Tipo di variabile Commenti
buckets e objects target.bucket.name Stringa e pattern Utilizzare questa variabile per controllare l'accesso a un bucket specifico. Importante: la corrispondenza delle condizioni non fa distinzione tra maiuscole e minuscole. Se si dispone di un bucket denominato "BucketA" e di un bucket denominato "bucketA", la condizione where target.bucket.name="BucketA" si applica a entrambi. Per evitare potenziali problemi con i nomi delle risorse nei criteri, assegnare nomi distinti alle risorse.
buckets e objects target.bucket.tag.<TagNamespace>.<TagKeyDefinition> Stringa Utilizzare questa variabile per controllare l'accesso ai bucket con la tag specifica. Vedere Consenti agli utenti di scrivere oggetti nei bucket di storage degli oggetti. Importante: non è possibile utilizzare questa variabile per le operazioni e le operazioni CreateBucket che coinvolgono più bucket, ad esempio ListBucket.
objects target.object.name Stringa e pattern Utilizzare questa variabile per controllare l'accesso a un oggetto o a pattern di oggetti specifici.
Nota

Le variabili request.ipv4.ipaddress e request.vcn.id non sono più valide. Anziché utilizzare queste variabili, creare un'origine di rete per specificare un intervallo di indirizzi IP o un ID VCN specifico. È quindi possibile utilizzare l'origine di rete nel criterio per limitare l'accesso solo alle richieste provenienti dalle reti consentite. Per ulteriori informazioni, vedere Panoramica delle origini di rete.

Dettagli per le combinazioni verbo-tipo di risorsa

Le tabelle seguenti mostrano le autorizzazioni e le operazioni API coperte da ciascun verbo. Il livello di accesso è cumulativo quando si sceglie inspect > read > use > manage. Ad esempio, un gruppo che può utilizzare una risorsa può anche ispezionare e leggere tale risorsa. Un segno più (+) in una cella di tabella indica l'accesso incrementale rispetto alla cella direttamente sopra di essa, mentre "nessun extra" indica nessun accesso incrementale.

Per tipi di risorse famiglia-oggetto

objectstorage-namespaces
Verbi Autorizzazioni API completamente coperte API parzialmente coperte
letto OBJECTSTORAGE_NAMESPACE_READ GetNamespace nessuno
utilizzare OBJECTSTORAGE_NAMESPACE_READ GetNamespace nessuno
gestisci OBJECTSTORAGE_NAMESPACE_READ

OBJECTSTORAGE_NAMESPACE_UPDATE

GetNamespace con il parametro compartmentId facoltativo

GetNamespaceMetadata

UpdateNamespaceMetadata

nessuno
buckets
Verbi Autorizzazioni API completamente coperte API parzialmente coperte
ispezionare

BUCKET_INSPECT

HeadBucket

ListBuckets

nessuno

letto

ISPEZIONA +

BUCKET_READ

ISPEZIONA +

GetBucket

ListMultipartUploads

GetObjectLifecyclePolicy

GetRetentionRule

ListRetentionRules

GetReplicationPolicy

ListReplicationPolicies

ListReplicationSources

nessuno

utilizzare

LETTURA +

BUCKET_UPDATE

LETTURA +

UpdateBucket

DeleteObjectLifecyclePolicy

ReencryptBucket

PutObjectLifecyclePolicy
gestisci

UTILIZZO +

BUCKET_CREATE

BUCKET_DELETE

PAR_MANAGE

RETENTION_RULE_MANAGE

RETENTION_RULE_LOCK (se si utilizza il blocco facoltativo delle regole)

UTILIZZO +

CreateBucket

DeleteBucket

CreatePreauthenticatedRequest

GetPreauthenticatedRequest

ListPreauthenticatedRequest

DeletePreauthenticatedRequest

CreateRetentionRule

UpdateRetentionRule

DeleteRetentionRule

CreateReplicationPolicy, DeleteReplicationPolicy, MakeBucketWritable (anche queste operazioni richiedono manage objects)

objects
Verbi Autorizzazioni API completamente coperte API parzialmente coperte
ispezionare

OBJECT_INSPECT

HeadObject

ListObjects

ListMultipartUploadParts

nessuno

letto

ISPEZIONA +

OBJECT_READ

ISPEZIONA +

GetObject

nessuno

utilizzare

LETTURA +

OBJECT_OVERWRITE

LETTURA +

ReencryptObject

LETTURA +

PutObject (USE consente a PutObject di sovrascrivere gli oggetti esistenti, ma la creazione di un nuovo oggetto richiede anche OBJECT_CREATE)

CreateMultipartUpload, UploadPart, CommitMultipartUpload (anche queste operazioni richiedono manage objects)

gestisci

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 (ha bisogno anche di manage objects)

CreateReplicationPolicy, DeleteReplicationPolicy, MakeBucketWritable (anche queste operazioni richiedono manage buckets)

 

Autorizzazioni necessarie per ogni operazione API

Nella tabella seguente sono elencate le operazioni API in ordine logico, raggruppate per tipo di risorsa.

Per informazioni sulle autorizzazioni, vedere Autorizzazioni.

Operazione API Autorizzazioni necessarie per utilizzare l'operazione
GetNamespace

L'API non richiede autorizzazioni e restituisce lo spazio di nomi del chiamante. Utilizzare l'API per convalidare le credenziali.

L'autorizzazione OBJECTSTORAGE_NAMESPACE_READ è obbligatoria se si include il parametro compartmentId facoltativo. Utilizzare il parametro compartmentId per trovare lo spazio di nomi per una tenancy di terze parti.

GetNamespaceMetadata OBJECTSTORAGE_NAMESPACE_READ
UpdateNamespaceMetadata OBJECTSTORAGE_NAMESPACE_UPDATE
CreateBucket BUCKET_CREATE

Se all'operazione viene fornito l'ID chiave KMS, sono necessarie le autorizzazioni aggiuntive riportate di seguito.

  • KEY_ASSOCIATE
  • L'oggetto objectstorage-<location> deve inoltre disporre di: KEY_ENCRYPT, KEY_DECRYPT, KEY_READ.
UpdateBucket BUCKET_UPDATE

Per un bucket cifrato con chiave gestita dal cliente, anche l'oggetto objectstorage-<location> deve avere: KEY_ENCRYPT e KEY_DECRYPT.

GetBucket BUCKET_READ

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere KEY_DECRYPT.

HeadBucket BUCKET_INSPECT

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere KEY_DECRYPT.

ListBuckets BUCKET_INSPECT
DeleteBucket BUCKET_DELETE
ReencryptBucket BUCKET_UPDATE

L'oggetto objectstorage-<location> deve avere anche: KEY_ENCRYPT e KEY_DECRYPT.

PutObject

L'autorizzazione richiesta dipende dal fatto che l'oggetto esista già nel bucket:

  • OBJECT_CREATE è obbligatorio quando un oggetto con tale nome non esiste già nel bucket.
  • OBJECT_OVERWRITE è obbligatorio quando un oggetto con il nome specificato esiste già nel bucket.

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere KEY_ENCRYPT.

RenameObject OBJECT_CREATE e OBJECT_OVERWRITE
GetObject OBJECT_READ

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere KEY_DECRYPT.

HeadObject OBJECT_READ o OBJECT_INSPECT

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere KEY_DECRYPT.

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

Per un bucket cifrato con chiave gestita dal cliente, sono necessarie le autorizzazioni seguenti:

  • KEY_ASSOCIATE
  • Inoltre, l'oggetto objectstorage-<location> deve avere anche KEY_ENCRYPT, KEY_DECRYPT e KEY_READ.
RestoreObjects OBJECT_RESTORE
UpdateObjectStorageTier OBJECT_UPDATE_TIER
CreateMultipartUpload OBJECT_CREATE e OBJECT_OVERWRITE

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere KEY_ENCRYPT.

UploadPart OBJECT_CREATE e OBJECT_OVERWRITE

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere KEY_ENCRYPT.

CommitMultipartUpload BUCKET_READ, OBJECT_CREATE, OBJECT_READ e 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 e OBJECT_DELETE

Inoltre, l'oggetto objectstorage-<location> deve disporre anche di: BUCKET_INSPECT, BUCKET_READ, OBJECT_INSPECT.

Se il bucket a cui si applica il criterio del ciclo di vita è un bucket cifrato con chiave gestita dal cliente, anche l'oggetto objectstorage-<location> deve avere: KEY_ENCRYPT e KEY_DECRYPT.

Se l'operazione PutObjectLifeCyclePolicy aggiorna anche il livello dell'oggetto, ad esempio per impostazione predefinita INFREQUENT_ACCESS, all'utente e all'oggetto objectstorage-<location> deve essere concessa l'autorizzazione OBJECT_UPDATE_TIER.

GetObjectLifecyclePolicy BUCKET_READ

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere KEY_DECRYPT.

DeleteObjectLifecyclePolicy BUCKET_UPDATE

Per un bucket cifrato con chiave gestita dal cliente, anche l'oggetto objectstorage-<location> deve avere: KEY_ENCRYPT e KEY_DECRYPT.

CreateRetentionRule BUCKET_UPDATE e RETENTION_RULE_MANAGE (e RETENTION_RULE_LOCK)

Per un bucket cifrato con chiave gestita dal cliente, anche l'oggetto objectstorage-<location> deve avere: KEY_ENCRYPT e KEY_DECRYPT.

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

Per un bucket cifrato con chiave gestita dal cliente, anche l'oggetto objectstorage-<location> deve avere: KEY_ENCRYPT e KEY_DECRYPT.

DeleteRetentionRule BUCKET_UPDATE e RETENTION_RULE_MANAGE

Per un bucket cifrato con chiave gestita dal cliente, anche l'oggetto objectstorage-<location> deve avere: KEY_ENCRYPT e KEY_DECRYPT.

CopyObjectRequest OBJECT_READ e la seconda autorizzazione utente richiesta dipende dal fatto che l'oggetto esista già nel bucket:
  • OBJECT_CREATE è obbligatorio quando un oggetto con questo nome non esiste già nel bucket.
  • OBJECT_OVERWRITE è obbligatorio quando un oggetto con questo nome esiste già nel bucket.

Inoltre, l'oggetto objectstorage-<location> richiede OBJECT_READ.

Per un bucket cifrato con chiave gestita dal cliente, l'oggetto objectstorage-<location> deve avere anche 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 e BUCKET_UPDATE

L'oggetto objectstorage-<location> deve disporre delle stesse autorizzazioni dell'utente.

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