Informations détaillées sur le stockage d'objets et le stockage d'archives

Cette rubrique présente des détails sur l'écriture de politiques permettant de contrôler l'accès au service de stockage d'archives et au service de stockage d'objets.

Conseil

Les politiques de cycle de vie des objets exigent que vous accordiez des autorisations au service Stockage d'objets pour archiver et supprimer des objets en votre nom. Pour plus d'informations, voir Utilisation des politiques de cycle de vie des objets.

Types de ressource

Types de ressource individuels

objectstorage-namespaces

buckets

objects

Type de ressource agrégé

object-family

Une politique utilisant <verb> object-family équivaut à une politique ayant un énoncé <verb> <individual resource-type> distinct pour chacun des types de ressource individuels.

Voir le tableau sous Informations détaillées sur les combinaisons Verbe + Type de ressource pour plus de détails sur les opérations d'API couvertes par chaque verbe, pour chaque type de ressource individuel inclus dans object-family.

Variables prises en charge

Le service Stockage d'objets prend en charge toutes les variables générales (voir Variables générales pour toutes les demandes), plus celles répertoriées ici :

Opérations pour ce type de ressource... Peut utiliser cette variable Type de variable Commentaires
buckets et objects target.bucket.name Chaînes et modèles Utilisez cette variable pour contrôler l'accès à un seau spécifique. Important : La correspondance des conditions n'est pas sensible à la casse. Si vous avez un seau nommé "BucketA" et un compartiment nommé "bucketA", la condition where target.bucket.name="BucketA" s'applique aux deux. Pour éviter les problèmes potentiels liés aux noms de ressource dans la politique, donnez des noms distincts aux ressources.
buckets et objects target.bucket.tag.<TagNamespace>.<TagKeyDefinition> Chaîne Utilisez cette variable pour contrôler l'accès aux seaux qui comportent le marqueur spécifique. Voir Permettre aux utilisateurs d'écrire des objets dans les seaux de stockage d'objets. Important : Vous ne pouvez pas utiliser cette variable pour des opérations CreateBucket et des opérations impliquant plusieurs seaux tels que ListBucket.
objects target.object.name Chaînes et modèles Utilisez cette variable pour contrôler l'accès à un objet ou à des modèles d'objet spécifiques.
Note

Les variables request.ipv4.ipaddress et request.vcn.id sont obsolètes. Au lieu d'utiliser ces variables, créez une source de réseau pour spécifier un intervalle d'adresses IP ou un ID réseau en nuage virtuel spécifique. Vous pouvez ensuite utiliser la source de réseau dans votre politique pour limiter l'accès uniquement aux demandes qui proviennent des réseaux autorisés. Pour plus d'informations, voir Aperçu des sources de réseau.

Informations détaillées sur les combinaisons Verbe + Type de ressource

Les tableaux suivants présentent les autorisations et les opérations d'API couvertes par chaque verbe. Le niveau d'accès est cumulatif depuis inspect > read > use > manage. Par exemple, un groupe qui peut utiliser une ressource peut également inspecter et lire cette ressource. Un signe plus (+) dans une cellule de tableau indique un accès incrémentiel comparé à la cellule directement au-dessus, alors que "aucun accès supplémentaire" indique qu'il n'y a aucun accès incrémentiel.

Pour les types de ressource object-family

objectstorage-namespaces
Verbes Autorisations API entièrement couvertes API partiellement couvertes
read OBJECTSTORAGE_NAMESPACE_READ GetNamespace aucune
use OBJECTSTORAGE_NAMESPACE_READ GetNamespace aucune
manage OBJECTSTORAGE_NAMESPACE_READ

OBJECTSTORAGE_NAMESPACE_UPDATE

GetNamespace avec le paramètre facultatif compartmentId

GetNamespaceMetadata

UpdateNamespaceMetadata

aucune
buckets
Verbes Autorisations API entièrement couvertes API partiellement couvertes
inspect

BUCKET_INSPECT

HeadBucket

ListBuckets

aucune

read

INSPECT +

BUCKET_READ

INSPECT +

GetBucket

ListMultipartUploads

GetObjectLifecyclePolicy

GetRetentionRule

ListRetentionRules

GetReplicationPolicy

ListReplicationPolicies

ListReplicationSources

aucune

use

READ +

BUCKET_UPDATE

READ +

UpdateBucket

DeleteObjectLifecyclePolicy

ReencryptBucket

PutObjectLifecyclePolicy
manage

USE +

BUCKET_CREATE

BUCKET_DELETE

PAR_MANAGE

RETENTION_RULE_MANAGE

RETENTION_RULE_LOCK (si vous utilisez 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 Autorisations API entièrement couvertes API partiellement couvertes
inspect

OBJECT_INSPECT

HeadObject

ListObjects

ListMultipartUploadParts

aucune

read

INSPECT +

OBJECT_READ

INSPECT +

GetObject

aucune

use

READ +

OBJECT_OVERWRITE

READ +

ReencryptObject

READ +

PutObject (USE permet à PutObject de remplacer des objets existants, mais la création d'un nouvel 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)

 

Autorisations requises 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 autorisations, voir Autorisations.

Opération d'API Autorisations requises pour utiliser l'opération
GetNamespace

L'API ne requiert aucune autorisation et retourne l'espace de noms du programme d'appel. Utilisez l'API pour valider vos données d'identification.

L'autorisation OBJECTSTORAGE_NAMESPACE_READ est requise si vous incluez le paramètre facultatif compartmentId. Utilisez le paramètre compartmentId pour rechercher l'espace de noms d'une location de tierce partie.

GetNamespaceMetadata OBJECTSTORAGE_NAMESPACE_READ
UpdateNamespaceMetadata OBJECTSTORAGE_NAMESPACE_UPDATE
CreateBucket BUCKET_CREATE

Si l'ID 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 seau chiffré avec clé gérée par le client, le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

GetBucket BUCKET_READ

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

HeadBucket BUCKET_INSPECT

Pour un seau chiffré avec clé gérée 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

L'autorisation requise varie selon que l'objet existe déjà dans le seau :

  • OBJECT_CREATE est nécessaire lorsqu'un objet portant ce nom n'existe pas déjà dans le seau.
  • OBJECT_OVERWRITE est nécessaire lorsqu'un objet portant ce nom existe déjà dans le seau.

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

RenameObject OBJECT_CREATE et OBJECT_OVERWRITE
GetObject OBJECT_READ

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

HeadObject OBJECT_READ ou OBJECT_INSPECT

Pour un seau chiffré avec clé gérée 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 seau chiffré avec clé gérée par le client, les autorisations suivantes sont requises :

  • KEY_ASSOCIATE
  • En outre, le sujet objectstorage-<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 seau chiffré avec clé gérée par le client, le sujet objectstorage-<location> doit avoir KEY_ENCRYPT.

UploadPart OBJECT_CREATE et OBJECT_OVERWRITE

Pour un seau chiffré avec clé gérée 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 objectstorage-<location> doit également avoir : BUCKET_INSPECT, BUCKET_READ, OBJECT_INSPECT.

Si le seau auquel s'applique la politique de cycle de vie est un seau chiffré avec 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, de la valeur par défaut à INFREQUENT_ACCESS, l'utilisateur et le sujet objectstorage-<location> doivent disposer de l'autorisation OBJECT_UPDATE_TIER.

GetObjectLifecyclePolicy BUCKET_READ

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

DeleteObjectLifecyclePolicy BUCKET_UPDATE

Pour un seau chiffré avec 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 seau chiffré avec 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 seau chiffré avec 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 seau chiffré avec clé gérée par le client, le sujet objectstorage-<location> doit également avoir : KEY_ENCRYPT et KEY_DECRYPT.

CopyObjectRequest OBJECT_READ et la deuxième autorisation d'utilisateur requise dépendent de l'existence de l'objet dans le seau :
  • OBJECT_CREATE est nécessaire lorsqu'un objet portant ce nom n'existe pas déjà dans le seau.
  • OBJECT_OVERWRITE est nécessaire lorsqu'un objet portant ce nom existe déjà dans le seau.

De plus, le sujet objectstorage-<location> nécessite OBJECT_READ.

Pour un seau chiffré avec 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