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.
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. |
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
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
|
nessuno |
Verbi | Autorizzazioni | API completamente coperte | API parzialmente coperte |
---|---|---|---|
ispezionare | BUCKET_INSPECT |
|
nessuno |
letto | ISPEZIONA + BUCKET_READ |
ISPEZIONA +
|
nessuno |
utilizzare | LETTURA + BUCKET_UPDATE |
LETTURA +
|
PutObjectLifecyclePolicy
|
gestisci | UTILIZZO + BUCKET_CREATE BUCKET_DELETE PAR_MANAGE RETENTION_RULE_MANAGE RETENTION_RULE_LOCK (se si utilizza il blocco facoltativo delle regole) |
UTILIZZO +
|
|
Verbi | Autorizzazioni | API completamente coperte | API parzialmente coperte |
---|---|---|---|
ispezionare | OBJECT_INSPECT |
|
nessuno |
letto | ISPEZIONA + OBJECT_READ |
ISPEZIONA +
|
nessuno |
utilizzare | LETTURA + OBJECT_OVERWRITE |
LETTURA +
|
LETTURA +
|
gestisci | USE + OBJECT_CREATE OBJECT_DELETE OBJECT_VERSION_DELETE OBJECT_RESTORE OBJECT_UPDATE_TIER |
USE +
|
|
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 |
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.
|
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:
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:
|
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 |
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:
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 |