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.
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. |
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
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
|
aucun |
Verbes | Droits d'accès | API complètement couvertes | API partiellement couvertes |
---|---|---|---|
inspect | BUCKET_INSPECT |
|
aucun |
read | INSPECT + BUCKET_READ |
INSPECT +
|
aucun |
use | READ + BUCKET_UPDATE |
READ +
|
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 +
|
|
Verbes | Droits d'accès | API complètement couvertes | API partiellement couvertes |
---|---|---|---|
inspect | OBJECT_INSPECT |
|
aucun |
read | INSPECT + OBJECT_READ |
INSPECT +
|
aucun |
use | READ + OBJECT_OVERWRITE |
READ +
|
READ +
|
manage | USE + OBJECT_CREATE OBJECT_DELETE OBJECT_VERSION_DELETE OBJECT_RESTORE OBJECT_UPDATE_TIER |
USE +
|
|
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 |
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 :
|
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 :
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 :
|
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 |
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 :
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 |