Sécurisation du service de stockage d'objets

Cette rubrique fournit des informations de sécurité et des recommandations relatives au stockage d'objets.

Le service Stockage d'objets est une plate-forme de stockage haute performance qui assure la durabilité des données de manière fiable et rentable. Vous pouvez stocker une quantité illimitée de données non structurées de tout type de contenu, notamment des données d'analyse et des contenus riches comme des images et des vidéos.

Responsabilités en matière de sécurité

Pour utiliser le service de stockage d'objets en toute sécurité, découvrez vos responsabilités en matière de sécurité et de conformité.

En général, Oracle assure la sécurité de l'infrastructure et des opérations en nuage, comme les contrôles de l'accès des opérateurs au nuage et l'application de correctifs de sécurité à l'infrastructure. Vous êtes responsable de la configuration sécurisée de vos ressources en nuage. La sécurité dans le nuage est une responsabilité partagée entre vous et Oracle.

Oracle est responsable des exigences de sécurité suivantes :

  • Physical Security : :Oracle est responsable de la protection de l'infrastructure globale qui exécute tous les services offerts dans Oracle Cloud Infrastructure. Cette infrastructure se compose du matériel, du logiciel, du réseau et des installations qui exécutent les services Oracle Cloud Infrastructure.

Vos responsabilités en matière de sécurité sont décrites dans cette page, qui comprend les domaines suivants :

  • Contrôle de l'accès : Limitez le plus possible les privilèges. Les utilisateurs ne doivent disposer que de l'accès nécessaire pour effectuer leur travail.
  • Chiffrement et confidentialité : Utilisez des clés de chiffrement et des clés secrètes pour protéger vos données et vous connecter à des ressources sécurisées. Faites pivoter ces clés régulièrement.

Tâches de sécurité initiales

Utilisez cette liste de vérification pour identifier les tâches que vous effectuez pour sécuriser le service de stockage d'objets dans une nouvelle location Oracle Cloud Infrastructure.

Tâche Informations supplémentaires
Utiliser les politiques GIA pour accorder l'accès aux utilisateurs et aux ressources Politiques GIA
Chiffrer les ressources à l'aide d'une clé personnalisée Chiffrement des données
Accès réseau sécurisé aux ressources Sécurité du réseau
Activer et configurer le service de protection d'infrastructure en nuage (facultatif) Service infonuagique
Créer une zone de sécurité (facultatif) Zones de sécurité

Tâches de sécurité régulières

Après avoir commencé à utiliser le service de stockage d'objets, utilisez cette liste de vérification pour identifier les tâches de sécurité que nous vous recommandons d'effectuer régulièrement.

Tâche Informations supplémentaires
Effectuer la rotation des clés de chiffrement Chiffrement des données
Répondre aux problèmes détectés dans le service de protection d'infrastructure en nuage Service infonuagique
Effectuer des sauvegardes périodiques Durabilité des données
Assurer l'intégrité des données lorsqu'elles sont déplacées ou copiées vers des emplacements différents Sommes de contrôle dans la sécurité des données
Vérifier la sécurité Vérification

Politiques GIA

Utilisez des politiques pour limiter l'accès au service de stockage d'objets.

Une politique indique qui peut accéder aux ressources Oracle Cloud Infrastructure et comment. Pour plus d'informations, voir Fonctionnement des politiques.

Affectez à un groupe les privilèges minimaux nécessaires à l'exercice de ses responsabilités. Chaque politique comporte un verbe qui décrit les actions que le groupe est autorisé à effectuer. De l'accès le plus restreint à l'accès le plus élevé, les verbes disponibles sont les suivants : inspect, read, use et manage.

Affectez l'accès le moins privilégié aux types de ressource dans object-family (seaux et objets). Par exemple, le verbe inspect vous permet de vérifier si un seau existe (HeadBucket) et de lister les seaux dans un compartiment (ListBucket). Le verbe manage accorde toutes les autorisations sur la ressource.

Nous vous recommandons d'accorder des autorisations DELETE à un jeu minimal d'utilisateurs et de groupes IAM. Cette pratique minimise la perte de données résultant de suppressions accidentelles par des utilisateurs autorisés ou d'acteurs malveillants. N'accordez les autorisations DELETE qu'aux administrateurs de location et de compartiment.

Dans les exemples suivants, les politiques portent sur une location. Toutefois, l'indication d'un nom de compartiment réduit la portée à un compartiment spécifique dans une location.

Autoriser l'accès d'utilisateur à un dossier spécifique

Vous pouvez autoriser l'accès de n'importe quel utilisateur à un dossier spécifique d'un seau à l'aide d'une combinaison de nom de seau spécifique (target.bucket.name) et de modèle d'objet spécifique (target.object.name). Vous pouvez utiliser un astérisque ("*") comme caractère générique pour mettre en correspondance n'importe quelle séquence de caractères de chaîne (/*name/, /name*/,/*name*/). La restriction de l'accès à un dossier par modèle d'objet n'empêche pas la liste de tous les objets du seau contenant.

ALLOW any-user TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*', request.user.id='ocid1.user.oc1..exampleuniqueID'}
Limiter l'accès d'un groupe à des seaux spécifiques

Vous pouvez restreindre l'accès d'un groupe à un seau spécifique à l'aide du nom de seau spécifique (target.bucket.name), des marqueurs définis (target.tag.definition.name), ou vous pouvez utiliser un astérisque comme caractère générique pour mettre en correspondance n'importe quelle séquence de caractères de chaîne (/*name/, /name*/, /*name*/).

L'exemple suivant montre comment restreindre l'accès des utilisateurs du groupe BucketUsers à un seau spécifique.

Allow group BucketUsers to use buckets in tenancy
 where target.bucket.name='BucketFoo'

Vous pouvez modifier cette politique afin de limiter l'accès des utilisateurs du groupe BucketUsers à tous les seaux dont le nom est précédé de ProjectA_.

Allow group BucketUsers to use buckets in tenancy
 where target.bucket.name=/ProjectA_*/

Vous pouvez également utiliser une correspondance de suffixe (/*_ProjectA/) ou de sous-chaîne (/*ProjectA*/).

Limiter l'accès d'un groupe à la lecture ou l'écriture des objets dans un seau spécifique

L'exemple suivant permet au groupe BucketUsers de lister et de lire les objets d'un seau particulier nommé BucketFoo.

Allow group BucketUsers to read buckets in tenancy
Allow group BucketUsers to manage objects in tenancy
 where all {target.bucket.name='BucketFoo', 
            any {request.permission='OBJECT_INSPECT', 
                 request.permission='OBJECT_READ'}}

La politique suivante modifie la politique précédente afin de permettre de lister et d'écrire les objets dans BucketFoo.

Allow group BucketUsers to read buckets in tenancy 
Allow group BucketUsers to manage objects in tenancy
 where all {target.bucket.name='BucketFoo', 
            any {request.permission='OBJECT_INSPECT', 
                 request.permission='OBJECT_CREATE'}}

Vous pouvez restreindre cette politique à la lecture ou l'écriture d'un jeu de seaux à l'aide d'expressions rationnelles ou de marqueurs réguliers, plutôt qu'à un compartiment particulier.

Limiter l'accès d'un groupe à la lecture ou l'écriture des objets en fonction des marqueurs de seau

L'exemple suivant permet de lister et de lire des objets par groupe BucketUsers à partir de tous les seaux avec le marqueur défini "MyTagNamespace.TagKey = MyTagValue".

Allow group BucketUsers to read buckets in tenancy
Allow group BucketUsers to manage objects in tenancy
 where all {target.bucket.tag.MyTagNamespace.TagKey='MyTagValue', 
            any {request.permission='OBJECT_INSPECT', 
                 request.permission='OBJECT_READ'}}

La politique suivante modifie la politique précédente pour permettre de lister et d'écrire des objets dans tous les seaux où le marqueur défini dans le seau correspond au marqueur défini dans le groupe auquel l'utilisateur appartient.

Allow group BucketUsers to read buckets in tenancy 
Allow group BucketUsers to manage objects in tenancy
 where all {request.principal.group.tag.MyTagNamespace.TagKey=target.bucket.tag.MyTagNamespace.TagKey, 
            any {request.permission='OBJECT_INSPECT', 
                 request.permission='OBJECT_CREATE'}}
Limiter l'accès aux ressources à un utilisateur particulier

Vous pouvez restreindre l'accès aux ressources du stockage d'objets à un utilisateur spécifique en ajoutant une condition à la politique qui spécifie l'OCID de l'utilisateur dans une variable.

La politique suivante limite l'accès aux ressources du compartiment ObjectStorage à l'OCID d'utilisateur indiqué :

Allow any-user to read object-family in compartment ObjectStorage where request.user.id ='ocid1.user.oc1..<user_OCID>'
Restreindre l'accès aux demandes provenant d'une adresse IP autorisée

Vous pouvez restreindre l'accès aux seules demandes provenant d'une adresse IP autorisée. Tout d'abord, vous créez une source de réseau pour spécifier les adresses IP autorisées, puis vous ajoutez une condition à votre politique pour restreindre l'accès aux adresses IP de la source de réseau.

La politique suivante limite l'accès aux seules adresses IP d'une source réseau corpnet qui définit les adresses IP autorisées :

Allow group CorporateUsers to manage object-family in tenancy where request.networkSource.name='corpnet'

Pour plus d'informations sur la création de sources de réseau et leur utilisation dans une politique, voir Gestion des sources de réseau.

Empêcher la suppression de seaux ou d'objets

Dans l'exemple suivant, le groupe BucketUsers peut effectuer toutes les actions sur les seaux et les objets, à l'exception de la suppression.

Allow group BucketUsers to manage objects in tenancy
 where request.permission!='OBJECT_DELETE' 
Allow group BucketUsers to manage buckets in tenancy
 where request.permission!='BUCKET_DELETE'

L'exemple suivant restreint davantage la suppression d'objets à un seau spécifique (BucketFoo).

Allow group BucketUsers to manage objects in tenancy
  where any {target.bucket.name!='BucketFoo', 
             all {target.bucket.name='BucketFoo',
                  request.permission!='OBJECT_DELETE'}}
Permettre la conformité WORM pour les objets

Utilisez les règles de conservation pour atteindre la conformité WORM. Les règles de conservation sont configurées au niveau du seau et s'appliquent à tous les objets individuels du seau. Vous ne pouvez pas mettre à jour, remplacer ou supprimer des objets ou des métadonnées d'objet tant que la règle de conservation n'est pas supprimée (règle illimitée) ou pendant la durée indiquée (règles à durée définie).

Les politiques suivantes permettent à BucketUsers de gérer les seaux et les objets de la location, ainsi que de créer, gérer et supprimer des règles de conservation. Ces politiques permettent également à BucketUsers de verrouiller les règles de conservation pour une durée spécifiée.

Allow group BucketUsers to manage buckets in tenancy
Allow group BucketUsers to manage objects in tenancy

Les politiques plus restrictives suivantes autorisent BucketUsers à exécuter toutes les actions sur des seaux et des objets, sauf le verrouillage des règles de conservation.

Allow group BucketUsers to manage buckets in tenancy
 where request.permission!='RETENTION_RULE_LOCK'
Allow group BucketUsers to manage objects in tenancy
Empêcher la configuration de seaux publics

Les autorisations BUCKET_CREATE et BUCKET_UDPATE sont nécessaires pour créer des seaux publics ou rendre publics des seaux privés existants. La suppression de ces autorisations empêche les utilisateurs de créer des seaux publics ou de rendre publics des seaux existants.

Allow group BucketUsers to manage buckets in tenancy
 where any {request.permission='BUCKET_INSPECT', 
            request.permission='BUCKET_READ', 
            request.permission='PAR_MANAGE'}

Pour plus d'informations sur les politiques de stockage d'objets et pour voir d'autres exemples, voir Détails sur les politiques de stockage d'objets, de stockage d'archives et de transfert de données.

Contrôle d'accès

Outre la création de politiques IAM, verrouillez l'accès au service de stockage d'objets à l'aide de fonctions telles que les demandes préauthentifiées.

Seaux publics

Un seau public permet les lectures non authentifiées et anonymes de tous les objets du seau. Évaluez avec soin le cas d'utilisation prévu pour les seaux publics avant de les activer.

Nous vous recommandons d'utiliser des demandes préauthentifiées pour accorder l'accès à un seau ou à un objet aux utilisateurs sans données d'identification IAM. Par défaut, les seaux sont créés sans accès public (le type d'accès est réglé à NoPublicAccess).

Vous pouvez rendre publics des seaux existants en mettant à jour le type d'accès du seau à ObjectRead ou ObjectReadWithoutList. Pour réduire la possibilité que des seaux existants soient rendus publics par inadvertance ou par malveillance, limitez l'autorisation BUCKET_UPDATE à un jeu minimal de groupes IAM.

La commande d'interface de ligne de commande suivante retourne la valeur public-access-type affectée à un seau.

oci os bucket get -ns <your_namespace> --bucket-name <bucket_name> | grep "public-access-type"

Si l'attribut public-access-type a la valeur NoPublicAccess, le seau est privé. Toute autre valeur telle que ObjectRead indique un seau public.

Demandes préauthentifiées

Pour les utilisateurs sans données d'identification GIA, nous recommandons d'utiliser des demandes préauthentifiées pour accorder un accès à durée définie aux objets ou aux seaux.

Dans une demande préauthentifiée, un utilisateur IAM disposant des privilèges appropriés pour accéder aux objets peut créer des URL spéciales qui accordent un accès limité dans le temps à ces objets. Pour plus d'informations, voir Utilisation de demandes préauthentifiées.

Le créateur d'une demande préauthentifiée doit disposer de l'autorisation PAR_MANAGE et des autorisations IAM appropriées pour le type d'accès que vous accordez. Vous pouvez créer une demande préauthentifiée qui accorde un accès en lecture, écriture ou lecture/écriture à l'un des éléments suivants :

  • Tous les objets du seau.
  • Un objet spécifique du seau.
  • Tous les objets du seau qui ont un préfixe spécifié.

Pour les demandes qui s'appliquent à plusieurs objets, vous pouvez également décider si vous souhaitez autoriser les utilisateurs à lister ces objets.

Les accès de demande préauthentifiée à un seau sont connectés dans les journaux de vérification. Les accès de demande préauthentifiée à un objet sont enregistrés dans les journaux de service.

Important

L'URL unique fournie par le système lorsque vous créez une demande préauthentifiée est le seul moyen pour un utilisateur d'accéder à la cible de la demande. Copiez l'URL pour la stocker durablement. L'URL n'est affichée qu'au moment de la création, n'est pas stockée dans le stockage d'objets et ne peut pas être extraite plus tard.

La commande d'interface de ligne de commande suivante retourne une liste de demandes PAR d'objet dans un seau.

oci os preauth-request list -ns <your_namespace> -bn <bucket_name>

Cloud Guard

Activez le service de protection d'infrastructure en nuage et utilisez-le pour détecter les problèmes de sécurité dans le service de stockage d'objets et y répondre.

Lors de la détection d'un problème, le service de protection d'infrastructure en nuage suggère des mesures correctives. Vous pouvez également configurer le service de protection d'infrastructure en nuage pour qu'il effectue automatiquement certaines actions. Le service de protection d'infrastructure en nuage inclut les règles de détecteur suivantes pour le stockage d'objets.

  • Le seau est public
  • Le seau de stockage d'objets est chiffré avec une clé gérée par Oracle
  • Clés de client IAM créées

Pour obtenir la liste de toutes les règles de détecteur disponibles dans le service de protection d'infrastructure en nuage, voir Informations de référence sur les recettes de détecteur.

Si vous ne l'avez pas encore fait, activez le service de protection d'infrastructure en nuage et configurez-le pour surveiller les compartiments qui contiennent vos ressources. Vous pouvez configurer des cibles du service de protection d'infrastructure en nuage pour examiner l'ensemble de votre location (compartiment racine et tous les sous-compartiments) ou pour vérifier uniquement des compartiments spécifiques. Voir Introduction au service de protection d'infrastructure en nuage.

Après avoir activé le service de protection d'infrastructure en nuage, vous pouvez voir et résoudre les problèmes de sécurité détectés. Voir Traitement des problèmes signalés.

Zones de sécurité

L'utilisation de zones de sécurité garantit que vos ressources dans le stockage d'objets sont conformes aux meilleures pratiques de sécurité.

Une zone de sécurité est associée à un ou plusieurs compartiments et à une recette de zone de sécurité. Lors de la création et de la mise à jour de ressources dans le compartiment d'une zone de sécurité, Oracle Cloud Infrastructure valide ces opérations en fonction de la liste des politiques de zone de sécurité dans la recette. En cas de violation d'une politique dans la recette, l'opération est refusée. Les politiques de zone de sécurité suivantes sont disponibles pour les ressources du service de stockage d'objets.

  • deny public_buckets
  • deny buckets_without_vault_key

Pour obtenir la liste de toutes les politiques de zone de sécurité, voir Politiques de zone de sécurité.

Pour déplacer des ressources existantes vers un compartiment qui se trouve dans une zone de sécurité, les ressources doivent être conformes à toutes les politiques de zone de sécurité de la recette de la zone. De même, les ressources dans une zone de sécurité ne peuvent pas être déplacées vers un compartiment à l'extérieur de la zone de sécurité, car cela peut être moins sécurisé. Voir Gestion des zones de sécurité.

Chiffrement des données

Créez et faites pivoter les clés de chiffrement dans le service de chambre forte pour protéger vos ressources dans le service de stockage d'objets.

Toutes les données du service de stockage d'objets sont chiffrées au repos à l'aide d'AES-256. Le chiffrement est activé par défaut et ne peut pas être désactivé. Chaque objet est chiffré avec sa clé de chiffrement, et les clés de chiffrement de l'objet sont chiffrées avec une clé de chiffrement principale.

Une chambre forte est une entité logique qui stocke les clés de chiffrement que vous utilisez pour protéger vos données. Selon le mode de protection, les clés sont soit stockées sur le serveur, soit stockées sur des modules de sécurité matériels hautement disponibles et durables. Nos modules de sécurité matériels répondent aux normes fédérales de traitement des informations (FIPS) 140-2 Certification de sécurité de niveau 3. Voir Gestion des chambres fortes et Gestion des clés.

Bien que les clés de chiffrement par défaut puissent être générées automatiquement lorsque vous créez certaines ressources Oracle Cloud Infrastructure, nous vous recommandons de créer et de gérer vos propres clés de chiffrement personnalisées dans le service de chambre forte.

Pour affecter une clé de chiffrement personnalisée à un nouveau seau ou à un seau existant, voir :

Une version de clé est affectée automatiquement à chaque clé principale de chiffrement. Lorsque vous effectuez la rotation d'une clé, le service de chambre forte génère une nouvelle version de clé. Une rotation régulière permet de limiter le volume des données chiffrées ou signées avec une version de clé. Si une clé est comprise, la rotation réduit les risques pour vos données. Voir Gestion des clés.

Nous vous recommandons d'utiliser des politiques IAM pour limiter strictement la création, la rotation et la suppression des clés de chiffrement. Voir Détails du service de chambre forte.

Vous pouvez également utiliser le chiffrement côté client pour chiffrer les objets avec leurs clés de chiffrement avant de les stocker dans des compartiments du service de stockage d'objets. Les clients ont également l'option d'utiliser l'API de compatibilité Amazon S3, ainsi que la prise en charge du chiffrement d'objet côté client offerte dans la trousse SDK AWS pour Java. Voir API de compatibilité Amazon S3 pour plus de détails sur cette trousse SDK.

Durabilité des données

Effectuez régulièrement des sauvegardes de vos données dans le service de stockage d'objets.

Réduisez au maximum les pertes de données dues aux suppressions accidentelles par un utilisateur autorisé ou aux suppressions malveillantes. Nous recommandons ce qui suit :
  • Utilisez le contrôle des versions d'objet pour créer automatiquement une version d'objet chaque fois qu'un nouvel objet est chargé, qu'un objet existant est remplacé ou lorsqu'un objet est supprimé.
  • Accordez les autorisations BUCKET_DELETE et OBJECT_DELETE à un ensemble minimal d'utilisateurs et de groupes GIA. Accordez les autorisations de suppression uniquement aux administrateurs de location et de compartiment.

La conformité WORM (Write Once, Read Many) exige que les objets ne puissent pas être supprimés ou modifiés. Utilisez les règles de conservation pour atteindre la conformité WORM. Les règles de conservation sont configurées au niveau du seau et s'appliquent à tous les objets individuels du seau. Vous ne pouvez pas mettre à jour, remplacer ou supprimer des objets ou des métadonnées d'objet tant que la règle de conservation n'est pas supprimée (règle illimitée) ou pendant la durée indiquée (règles à durée définie).

Pour une évaluation indépendante de la capacité de la fonction de règles de conservation d'Object Storage afin de répondre aux exigences réglementaires en matière de gestion et de conservation des enregistrements, voir les rubriques SEC 17a-4(f), FINRA 4511(c), CFTC 1.31(c)-(d) et MiFID II Compliance Assessment de Cohasset Associate.

Sommes de contrôle dans la sécurité des données

Pour vérifier l'intégrité des données d'objet, une somme de contrôle MD5 est fournie pour tous les objets chargés dans le service de stockage d'objets. En outre, vous pouvez appliquer une des sommes de contrôle facultatives suivantes aux objets chargés dans le service de stockage d'objets :

  • SHA256

  • SHA384

  • CRC32C

Utilisation de la somme de contrôle MD5

Nous recommandons de vérifier que la somme de contrôle MD5 hors ligne d'un objet correspond à la valeur de somme de contrôle retournée par la console ou l'API après le chargement. Oracle Cloud Infrastructure fournit la valeur de somme de contrôle de l'objet dans l'encodage base64. Pour convertir en hexadécimal la valeur de somme de contrôle encodée base64, utilisez la commande suivante :

python -c 'print "BASE64-ENCODED-MD5-VALUE".decode("base64").encode("hex")'

Linux fournit un utilitaire de ligne de commande md5sum pour calculer la valeur de somme de contrôle MD5 d'un objet dans le format hexadécimal.

Utilisation de la somme de contrôle MD5 avec les chargements en plusieurs parties

Le service de stockage d'objets prend en charge les charges en plusieurs parties pour plus d'efficacité et de résilience, particulièrement pour les objets grands. Dans un chargement en plusieurs parties, un objet volumineux est divisé en parties plus petites en indiquant une taille de partie en Mio. Chaque partie est chargée séparément. Le service de stockage d'objets combine ensuite toutes les parties pour créer l'objet initial. En cas d'échec du chargement d'une des parties, seule cette partie doit être réessayée et pas l'objet entier.

Dans un chargement en plusieurs parties, les valeurs de somme de contrôle MD5 sont calculées pour chaque partie et une somme de contrôle MD5 est calculée sur toutes les valeurs de somme de contrôle individuelles afin d'obtenir la valeur MD5 de sortie. Pour vérifier la valeur MD5 retournée pour un chargement en plusieurs parties, utilisez le même processus que pour le calcul de somme de contrôle MD5 hors ligne. Un exemple de script pour le calcul hors ligne d'une valeur de somme de contrôle MD5 pour un chargement en plusieurs parties dans le service de stockage d'objets est disponible ici : https://gist.github.com/itemir/f5bc9fded6483cd79c89ebf4ca1cfd30.

Utilisation de la somme de contrôle SHA256 ou SHA384

Certaines industries ont des exigences réglementaires pour utiliser une méthode de somme de contrôle considérée comme plus forte que MD5. Ces exigences exigent souvent explicitement SHA256 ou SHA384. Vous pouvez sélectionner l'algorithme requis par leur régime de conformité. Notez que la présence de MD5 n'est pas considérée comme non sécurisée ou non conforme. L'ajout d'une autre méthode de somme de contrôle fournit une vérification d'intégrité supplémentaire. L'ajout d'un des types de somme de contrôle SHA devrait vous aider à répondre à ces exigences.

Voici des exemples d'utilisation des sommes de contrôle SHA256 ou SHA384 :
~ echo "Test" | openssl dgst -sha256 -binary | base64
ydBMlWX8ZlyAaB+x2CmTgCaHH2bhT1AeCFMd9mk4p4k=
~ echo "Test" | openssl dgst -sha384 -binary | base64
B6T9J1V45Pkr3wb9V8ioT3u/WNk2zCkY4lAKZ3wYXfDUe2ImwIpVK8O42uUOANY2

Utilisation de la somme de contrôle CRC32C

Vous pouvez comparer la somme de contrôle calculée sur un système de stockage local à celles calculées par le service de stockage d'objets. Cela est difficile à faire avec les chargements en plusieurs parties, car la somme de contrôle calculée dépend de la taille exacte de chaque partie, qui peut être différente selon les systèmes (ou avec des paramètres de chargement différents).

Le type de somme de contrôle CRC32C est conçu pour retourner la même somme de contrôle pour le même objet, quel que soit le mode de chargement. Les clients peuvent ainsi comparer la somme de contrôle CRC32C calculée par le service de stockage d'objets avec la somme de contrôle CRC32C calculée par le stockage local ou d'autres nuages, quels que soient les paramètres de chargement en plusieurs parties.

Utilisation de types de somme de contrôle supplémentaires

Vous ne pouvez utiliser qu'un seul type de somme de contrôle supplémentaire par objet chargé. Les sommes de contrôle MD5 sont toujours calculées sur chaque objet. Lors de l'utilisation d'un type de somme de contrôle supplémentaire, la latence des commandes GET et PUT peut être légèrement plus longue que celle d'un type GET ou PUT sur le même objet sans le type de somme de contrôle supplémentaire.

Sécurité du réseau

Accès réseau sécurisé à vos ressources dans le service de stockage d'objets.

Les données en transit entre les clients de client de client (par exemple, les trousses SDK et les interfaces de ligne de commande) et les points d'extrémité publics du service de stockage d'objets sont chiffrées avec TLS 1.2 par défaut. L'appairage public FastConnect permet un accès sur place au service de stockage d'objets au moyen d'un réseau privé, plutôt que de l'Internet public. Voir Accès à votre réseau sur place.

Vérification

Localisez les journaux d'accès et d'autres données de sécurité pour le stockage d'objets.

Le service de vérification enregistre automatiquement tous les appels d'API aux ressources Oracle Cloud Infrastructure. Vous pouvez atteindre vos objectifs de sécurité et de conformité en utilisant le service de vérification pour surveiller toutes les activités des utilisateurs dans votre location. Comme tous les appels de console, de trousse SDK et de ligne de commande (interface de ligne de commande) sont effectués par l'intermédiaire de nos API, toute l'activité provenant de ces sources est incluse. Les enregistrements de vérification sont disponibles au moyen d'une API d'interrogation authentifiée et filtrable ou ils peuvent être extraits en tant que fichiers par lots à partir du stockage d'objets. Le contenu du journal de vérification inclut l'activité survenue, l'utilisateur qui l'a lancée, la date et l'heure de la demande, ainsi que l'adresse IP source, l'agent utilisateur et les en-têtes HTTP de la demande. Voir Affichage des événements du journal de vérification.

Exemple de journal de vérification
{
  "datetime": 1642104527377,
  "logContent": {
    "data": {
      "additionalDetails": {
        "namespace": "mytenancy"
      },
      "availabilityDomain": "PHX-AD-1",
      "compartmentId": "ocid1.compartment.oc1..<unique_id>",
      "compartmentName": "mycompartment",
      "definedTags": null,
      "eventGroupingId": "<unique_id>",
      "eventName": "ListBuckets",
      "freeformTags": null,
      "identity": {
        "authType": null,
        "callerId": null,
        "callerName": null,
        "consoleSessionId": null,
        "credentials": "<key>",
        "ipAddress": "<ip_address>",
        "principalId": "<user_id>",
        "principalName": "<user_name>",
        "tenantId": "ocid1.tenancy.oc1..<unique_id>",
        "userAgent": "Oracle-JavaSDK/1.37.1 (Linux/4.14.35-2047.509.2.2.el7uek.x86_64; Java/1.8.0_301; Java HotSpot(TM) 64-Bit Server VM GraalVM EE 20.3.3/25.301-b09-jvmci-20.3-b18)"
      },
      "message": "List of buckets retrieved.",
      "request": {
        "action": "GET",
        "headers": {
          "Accept": [
            "application/json"
          ],
          "Connection": [
            "keep-alive"
          ],
          "User-Agent": [
            "Oracle-JavaSDK/1.37.1 (Linux/4.14.35-2047.509.2.2.el7uek.x86_64; Java/1.8.0_301; Java HotSpot(TM) 64-Bit Server VM GraalVM EE 20.3.3/25.301-b09-jvmci-20.3-b18)"
          ],
          "authorization": [
            "Signature headers=\"date (request-target) host\",keyId=\"<key>"
          ],
          "date": [
            "Thu, 13 Jan 2022 20:08:47 GMT"
          ],
          "opc-client-info": [
            "Oracle-JavaSDK/1.37.1"
          ],
          "opc-request-id": [
            "<unique_id>"
          ]
        },
        "id": "<unique_id>",
        "parameters": {
          "compartmentId": [
            "ocid1.compartment.oc1..<unique_id>"
          ],
          "fields": [
            "tags"
          ],
          "limit": [
            "1000"
          ],
          "param0": [
            "mytenancy"
          ]
        },
        "path": "/n/mytenancy/b?compartmentId=ocid1.compartment.oc1..<unique_id>&limit=1000&fields=tags"
      },
      "resourceId": "/n/mytenancy/b?compartmentId=ocid1.compartment.oc1..<unique_id>&limit=1000&fields=tags",
      "response": {
        "headers": {
          "Content-Length": [
            "2"
          ],
          "Content-Type": [
            "application/json"
          ],
          "access-control-allow-credentials": [
            "true"
          ],
          "access-control-allow-methods": [
            "POST,PUT,GET,HEAD,DELETE,OPTIONS"
          ],
          "access-control-allow-origin": [
            "*"
          ],
          "access-control-expose-headers": [
            "access-control-allow-credentials,access-control-allow-methods,access-control-allow-origin,content-length,content-type,date,opc-client-info,opc-request-id,x-api-id"
          ],
          "date": [
            "Thu, 13 Jan 2022 20:08:47 GMT"
          ],
          "opc-request-id": [
            "<unique_id>"
          ],
          "x-api-id": [
            "native"
          ]
        },
        "message": null,
        "payload": {
          "id": "/n/mytenancy/b?compartmentId=ocid1.compartment.oc1..<unique_id>&limit=1000&fields=tags",
          "resourceName": "/n/mytenancy/b?compartmentId=ocid1.compartment.oc1..<unique_id>&limit=1000&fields=tags"
        },
        "responseTime": "2022-01-13T20:08:47.377Z",
        "status": "200"
      },
      "stateChange": null
    },
    "dataschema": "2.0",
    "id": "<unique_id>",
    "oracle": {
      "compartmentid": "ocid1.compartment.oc1..<unique_id>",
      "ingestedtime": "2022-01-13T20:08:49.384Z",
      "loggroupid": "_Audit",
      "tenantid": "ocid1.tenancy.oc1..<unique_id>"
    },
    "source": "/n/mytenancy/b?compartmentId=ocid1.compartment.oc1..<unique_id>&limit=1000&fields=tags",
    "specversion": "1.0",
    "time": "2022-01-13T20:08:47.377Z",
    "type": "com.oraclecloud.objectstorage.listbuckets"
  }
}

Si vous avez activé le service de protection d'infrastructure en nuage dans votre location, toutes les activités d'utilisateur pouvant poser des problèmes de sécurité sont signalées. Lors de la détection d'un problème, le service de protection d'infrastructure en nuage suggère des mesures correctives. Vous pouvez également configurer le service de protection d'infrastructure en nuage pour qu'il effectue automatiquement certaines actions. Voir Introduction au service de protection d'infrastructure en nuage et Traitement des problèmes signalés.