Détails relatifs à Object Storage et Archive Storage

Cette rubrique traite des détails relatifs à l'écriture de stratégies visant à contrôler l'accès à Archive Storage et Object Storage.

Conseil

La fonctionnalité de stratégies de cycle de vie des objets requiert que vous accordiez des droits d'accès au service Object Storage lui permettant d'archiver et de supprimer des objets en votre nom. Pour plus d'informations, reportez-vous à Utilisation des stratégies de cycle de vie des objets.

Types de ressource

Types individuels de ressource

objectstorage-namespaces

buckets

objects

Type agrégé de ressource

object-family

Une stratégie qui utilise <verb> object-family équivaut à écrire une stratégie avec une instruction <verb> <individual resource-type> distincte pour chaque type individuel de ressource.

Reportez-vous au tableau dans Détails des combinaisons de verbe et de type de ressource afin d'obtenir des détails sur les opérations d'API couvertes par chaque verbe, pour chaque type individuel de ressource inclus dans object-family.

Variables prises en charge

Object Storage prend en charge toutes les variables générales (reportez-vous à Variables générales pour toutes les demandes) ainsi que celles répertoriées ici :

Type de ressource pour les opérations Variable pouvant être utilisée Type de variable Commentaires
buckets et objects target.bucket.name Chaîne et motifs Utilisez cette variable pour contrôler l'accès à un bucket spécifique. Important : la mise en correspondance de conditions ne tient pas compte de la casse. Si vous disposez d'un bucket nommé "BucketA" et d'un bucket nommé "bucketA", la condition where target.bucket.name="BucketA" s'applique aux deux. Afin d'éviter d'éventuels problèmes liés aux noms de ressource dans une stratégie, donnez à vos ressources des noms distincts.
buckets et objects target.bucket.tag.<TagNamespace>.<TagKeyDefinition> Chaîne Utilisez cette variable pour contrôler l'accès aux buckets avec une balise spécifique. Reportez-vous à Autoriser les utilisateurs à écrire des objets dans des buckets Object Storage. Important : vous ne pouvez pas utiliser cette variable pour les opérations CreateBucket et pour les opérations qui impliquent plusieurs buckets, comme ListBucket.
objects target.object.name Chaîne et motifs Utilisez cette variable pour contrôler l'accès à un objet ou à des modèles d'objet spécifiques.
Remarque

Les variables request.ipv4.ipaddress et request.vcn.id sont en phase d'abandon. Au lieu d'utiliser ces variables, créez une source réseau pour spécifier une plage d'adresses IP ou un ID de réseau cloud virtuel spécifique. Vous pouvez ensuite utiliser la source réseau dans votre stratégie pour limiter l'accès aux demandes provenant des réseaux autorisés uniquement. Pour plus d'informations, reportez-vous à Présentation des sources réseau.

Détails des combinaisons de verbe et de type de ressource

Les tableaux suivants indiquent les droits d'accès et les opérations d'API couverts par chaque verbe. Le niveau d'accès est cumulatif à mesure que vous passez d'un verbe à l'autre de la façon suivante :inspect > read > use > manage. Par exemple, un groupe qui peut utiliser une ressource peut également inspecter et lire cette ressource. La présence d'un signe plus (+) dans une cellule du tableau indique un accès incrémentiel par rapport à la cellule située directement au-dessus, tandis que la mention "aucun élément supplémentaire" indique l'absence d'accès incrémentiel.

Pour les types de ressource object-family

objectstorage-namespaces
Verbes Droits d'accès API complètement couvertes API partiellement couvertes
read OBJECTSTORAGE_NAMESPACE_READ GetNamespace aucun
use OBJECTSTORAGE_NAMESPACE_READ GetNamespace aucun
manage OBJECTSTORAGE_NAMESPACE_READ

OBJECTSTORAGE_NAMESPACE_UPDATE

GetNamespace avec le paramètre compartmentId facultatif

GetNamespaceMetadata

UpdateNamespaceMetadata

aucun
buckets
Verbes Droits d'accès API complètement couvertes API partiellement couvertes
inspect

BUCKET_INSPECT

HeadBucket

ListBuckets

aucun

read

INSPECT +

BUCKET_READ

INSPECT +

GetBucket

ListMultipartUploads

GetObjectLifecyclePolicy

GetRetentionRule

ListRetentionRules

GetReplicationPolicy

ListReplicationPolicies

ListReplicationSources

aucun

use

READ +

BUCKET_UPDATE

READ +

UpdateBucket

DeleteObjectLifecyclePolicy

ReencryptBucket

PutObjectLifecyclePolicy
manage

USE +

BUCKET_CREATE

BUCKET_DELETE

PAR_MANAGE

RETENTION_RULE_MANAGE

RETENTION_RULE_LOCK (en cas d'utilisation d'un verrouillage de règle facultatif)

USE +

CreateBucket

DeleteBucket

CreatePreauthenticatedRequest

GetPreauthenticatedRequest

ListPreauthenticatedRequest

DeletePreauthenticatedRequest

CreateRetentionRule

UpdateRetentionRule

DeleteRetentionRule

CreateReplicationPolicy, DeleteReplicationPolicy, MakeBucketWritable (ces opérations requièrent également manage objects)

objects
Verbes Droits d'accès API complètement couvertes API partiellement couvertes
inspect

OBJECT_INSPECT

HeadObject

ListObjects

ListMultipartUploadParts

aucun

read

INSPECT +

OBJECT_READ

INSPECT +

GetObject

aucun

use

READ +

OBJECT_OVERWRITE

READ +

ReencryptObject

READ +

PutObject (USE permet à PutObject de remplacer des objets existants, mais la création d'un objet requiert également OBJECT_CREATE)

CreateMultipartUpload, UploadPart, CommitMultipartUpload (ces opérations requièrent également 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 (requiert également manage objects)

CreateReplicationPolicy, DeleteReplicationPolicy, MakeBucketWritable (ces opérations requièrent également manage buckets)

 

Droits d'accès requis pour chaque opération d'API

Le tableau suivant répertorie les opérations d'API dans un ordre logique, regroupées par type de ressource.

Pour plus d'informations sur les droits d'accès, reportez-vous à Droits d'accès.

Opération d'API Droits d'accès requis pour utiliser l'opération
GetNamespace

L'API ne requiert aucun droit d'accès et renvoie l'espace de noms de l'appelant. Utilisez l'API pour valider vos informations d'identification.

Le droit d'accès OBJECTSTORAGE_NAMESPACE_READ est requis si vous incluez le paramètre facultatif compartmentId. Utilisez le paramètre compartmentId pour rechercher l'espace de noms d'une location tierce.

GetNamespaceMetadata OBJECTSTORAGE_NAMESPACE_READ
UpdateNamespaceMetadata OBJECTSTORAGE_NAMESPACE_UPDATE
CreateBucket BUCKET_CREATE

Si l'ID de clé KMS est fourni à l'opération, les autorisations supplémentaires suivantes sont requises :

  • KEY_ASSOCIATE
  • Le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT, KEY_DECRYPT, KEY_READ.
UpdateBucket BUCKET_UPDATE

Pour un bucket chiffré à clé gérée par le client, le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

GetBucket BUCKET_READ

Pour un bucket chiffré de clé géré par le client, le sujet objectstorage-<location> doit avoir KEY_DECRYPT.

HeadBucket BUCKET_INSPECT

Pour un bucket chiffré de clé géré par le client, le sujet objectstorage-<location> doit avoir KEY_DECRYPT.

ListBuckets BUCKET_INSPECT
DeleteBucket BUCKET_DELETE
ReencryptBucket BUCKET_UPDATE

Le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

PutObject

Le droit d'accès requis dépend de l'existence ou non de l'objet dans le bucket :

  • OBJECT_CREATE est requis en l'absence d'objet portant ce nom dans le bucket.
  • OBJECT_OVERWRITE est requis lorsqu'un objet portant ce nom existe déjà dans le bucket.

Pour un bucket chiffré de clé géré par le client, le sujet objectstorage-<location> doit avoir KEY_ENCRYPT.

RenameObject OBJECT_CREATE et OBJECT_OVERWRITE
GetObject OBJECT_READ

Pour un bucket chiffré de clé géré par le client, le sujet objectstorage-<location> doit avoir KEY_DECRYPT.

HeadObject OBJECT_READ ou OBJECT_INSPECT

Pour un bucket chiffré de clé géré par le client, le sujet objectstorage-<location> doit avoir KEY_DECRYPT.

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

Pour un bucket crypté de clés gérées par le client, les droits d'accès suivants sont requis :

  • KEY_ASSOCIATE
  • En outre, le sujet objecttorage-<location> doit également avoir KEY_ENCRYPT, KEY_DECRYPT et KEY_READ.
RestoreObjects OBJECT_RESTORE
UpdateObjectStorageTier OBJECT_UPDATE_TIER
CreateMultipartUpload OBJECT_CREATE et OBJECT_OVERWRITE

Pour un bucket chiffré de clé géré par le client, le sujet objectstorage-<location> doit avoir KEY_ENCRYPT.

UploadPart OBJECT_CREATE et OBJECT_OVERWRITE

Pour un bucket chiffré de clé géré par le client, le sujet objectstorage-<location> doit avoir KEY_ENCRYPT.

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

En outre, le sujet objecttorage-<location> doit également avoir : BUCKET_INSPECT, BUCKET_READ, OBJECT_INSPECT.

Si le bucket auquel la stratégie de cycle de vie s'applique est un bucket chiffré à clé gérée par le client, le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

Si l'opération PutObjectLifeCyclePolicy met également à jour le niveau d'objet, par exemple, par défaut vers INFREQUENT_ACCESS, l'utilisateur et le sujet objectstorage-<location> doivent disposer de l'autorisation OBJECT_UPDATE_TIER.

GetObjectLifecyclePolicy BUCKET_READ

Pour un bucket chiffré de clé géré par le client, le sujet objectstorage-<location> doit avoir KEY_DECRYPT.

DeleteObjectLifecyclePolicy BUCKET_UPDATE

Pour un bucket chiffré à clé gérée par le client, le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

CreateRetentionRule BUCKET_UPDATE et RETENTION_RULE_MANAGE (et RETENTION_RULE_LOCK)

Pour un bucket chiffré à clé gérée par le client, le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

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

Pour un bucket chiffré à clé gérée par le client, le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

DeleteRetentionRule BUCKET_UPDATE et RETENTION_RULE_MANAGE

Pour un bucket chiffré à clé gérée par le client, le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

CopyObjectRequest OBJECT_READ, et le deuxième droit d'accès utilisateur requis varie selon que l'objet existe déjà dans le bucket :
  • OBJECT_CREATE est requis lorsqu'aucun objet portant ce nom n'existe dans le bucket.
  • OBJECT_OVERWRITE est requis lorsqu'un objet portant ce nom existe déjà dans le bucket.

En outre, le sujet objectstorage-<location> requiert OBJECT_READ.

Pour un bucket chiffré à clé gérée par le client, le sujet objectstorage-<location> doit également avoir 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 et BUCKET_UPDATE

Le sujet objectstorage-<location> doit avoir les mêmes autorisations que l'utilisateur.

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