Object Storage sichern
Dieses Thema enthält Sicherheitsinformationen und Empfehlungen für Object Storage.
Der Object Storage-Service ist eine leistungsstarke Speicherplattform, die zuverlässige und kostengünstige Dauerhaftigkeit von Daten bietet. Sie können eine unbegrenzte Menge unstrukturierter Daten eines beliebigen Inhaltstyps speichern. Dazu zählen Analysendaten und umfangreiche Inhalte, wie Bilder und Videos.
Sicherheitszuständigkeiten
Um Object Storage sicher zu verwenden, lernen Sie Ihre Sicherheits- und Compliancezuständigkeiten kennen.
Oracle ist für die folgenden Sicherheitsanforderungen verantwortlich:
- Physische Sicherheit: Oracle ist für den Schutz der globalen Infrastruktur verantwortlich, auf der alle in Oracle Cloud Infrastructure angebotenen Services ausgeführt werden. Diese Infrastruktur besteht aus Hardware, Software, Netzwerken und Einrichtungen, die Oracle Cloud Infrastructure-Services ausführen.
Ihre Sicherheitszuständigkeiten sind auf dieser Seite beschrieben. Sie umfassen die folgenden Bereiche:
- Zugriffskontrolle: Beschränken Sie Berechtigungen so weit wie möglich. Benutzern sollte nur der erforderliche Zugriff zum Ausführen ihrer Aufgaben erteilt werden.
- Verschlüsselung und Vertraulichkeit: Verwenden Sie Verschlüsselungsschlüssel und Secrets, um Ihre Daten zu schützen und eine Verbindung zu gesicherten Ressourcen herzustellen. Drehen Sie diese Schlüssel regelmäßig.
Erste Sicherheitsaufgaben
Mit dieser Checkliste können Sie die Aufgaben identifizieren, die zum Sichern von Object Storage in einem neuen Oracle Cloud Infrastructure-Mandanten ausgeführt werden.
Aufgabe | Weitere Informationen |
---|---|
Mit IAM-Policys Benutzern und Ressourcen Zugriffsberechtigungen erteilen | IAM-Policys |
Ressourcen mit einem benutzerdefinierten Schlüssel verschlüsseln | Datenverschlüsselung |
Sicherer Netzwerkzugriff auf Ressourcen | Netzwerksicherheit |
Cloud Guard aktivieren und konfigurieren (optional) | Cloud Guard |
Sicherheitszone erstellen (optional) | Sicherheitszonen |
Routinemäßige Sicherheitsaufgaben
Nach den ersten Schritten mit Object Storage können Sie mit dieser Checkliste Sicherheitsaufgaben ermitteln, die Sie regelmäßig ausführen sollten.
Aufgabe | Weitere Informationen |
---|---|
Verschlüsselungsschlüssel rotieren | Datenverschlüsselung |
Auf in Cloud Guard erkannte Probleme reagieren | Cloud Guard |
Regelmäßige Backups erstellen | Datendauerhaftigkeit |
Stellen Sie die Integrität Ihrer Daten sicher, wenn sie an andere Standorte verschoben oder kopiert werden | Prüfsummen in der Datensicherheit |
Sicherheitsaudit ausführen | Prüfen |
IAM-Policys
Verwenden Sie Policys, um den Zugriff auf Object Storage einzuschränken.
In einer Policy ist definiert, wer wie auf Oracle Cloud Infrastructure-Ressourcen zugreifen kann. Weitere Informationen finden Sie unter Funktionsweise von Policys.
Weisen Sie einer Gruppe jeweils nur die geringsten Berechtigungen zu, die diese Gruppe benötigt, um ihre Zuständigkeiten ausführen zu können. Jede Policy enthält ein Verb, das beschreibt, welche Aktionen die Gruppe ausführen darf. Folgende Verben sind verfügbar (sortiert nach Berechtigung): inspect
, read
, use
und manage
.
Weisen Sie den Ressourcentypen in object-family
(Buckets und Objekte) den geringsten privilegierten Zugriff zu. Beispiel: Mit dem Verb inspect
können Sie prüfen, ob ein Bucket vorhanden ist (HeadBucket
), und die Buckets in einem Compartment auflisten (ListBucket
). Das Verb manage
erteilt alle Berechtigungen für die Ressource.
Es wird empfohlen, einem Mindestset von IAM-Benutzern und -Gruppen DELETE
-Berechtigungen zu erteilen. Diese Vorgehensweise minimiert den Datenverlust durch versehentliches Löschen durch autorisierte Benutzer oder durch böswillige Akteure. Erteilen Sie DELETE
-Berechtigungen nur Mandanten- und Compartment-Administratoren.
In den folgenden Beispielen sind die Policys einem Mandanten zugeordnet. Wenn Sie jedoch einen Compartment-Namen angeben, wird der Geltungsbereich auf ein bestimmtes Compartment in einem Mandanten begrenzt.
Sie können jedem Benutzer Zugriff auf einen bestimmten Ordner in einem Bucket erteilen, indem Sie eine Kombination aus einem bestimmten Bucket-Namen (target.bucket.name
) und einem bestimmten Objektmuster (target.object.name
) verwenden. Sie können ein Sternchen ("*") als Platzhalter verwenden, um eine beliebige Folge von Zeichenfolgen abzugleichen (/*name/
, /name*/
,/*name*/
). Wenn Sie den Zugriff auf einen Ordner nach Objektmuster einschränken, werden nicht alle Objekte im enthaltenden Bucket aufgelistet.
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'}
Sie können den Zugriff durch eine Gruppe auf einen bestimmten Bucket mit dem spezifischen Bucket-Namen (target.bucket.name
), den definierten Tags (target.tag.definition.name
) einschränken, oder Sie können ein Sternchen als Platzhalter verwenden, um eine beliebige Folge von Zeichenfolgen abzugleichen (/*name/
, /name*/
, /*name*/
).
Im folgenden Beispiel wird der Zugriff auf Benutzer in der Gruppe BucketUsers
auf einen bestimmten Bucket eingeschränkt.
Allow group BucketUsers to use buckets in tenancy
where target.bucket.name='BucketFoo'
Sie können diese Policy ändern, um den Zugriff auf Benutzer in der Gruppe BucketUsers
auf alle Buckets einzuschränken, deren Namen ProjectA_
vorangestellt ist.
Allow group BucketUsers to use buckets in tenancy
where target.bucket.name=/ProjectA_*/
Sie können auch einen Abgleich für das Präfix (/*_ProjectA/
) oder die Teilzeichenfolge (/*ProjectA*/
) vornehmen.
Das folgende Beispiel ermöglicht das Auflisten und Lesen von Objekten durch die Gruppe BucketUsers
aus dem Bucket 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'}}
Die folgende Policy ändert die vorherige Policy, um das Auflisten und Schreiben von Objekten in BucketFoo
zuzulassen.
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'}}
Sie können diese Policy auf Lese- oder Schreibzugriff auf eine Gruppe von Buckets begrenzen, indem Sie reguläre Ausdrücke oder Tags anstelle eines bestimmten Buckets verwenden.
Das folgende Beispiel ermöglicht das Auflisten und Lesen von Objekten nach Gruppe BucketUsers
aus allen Buckets mit dem definierten Tag "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'}}
Die folgende Policy ändert die vorherige Policy, sodass das Auflisten und Schreiben von Objekten in alle Buckets zulässig ist, in denen das definierte Tag im Bucket mit dem definierten Tag in der Gruppe übereinstimmt, zu der der der Benutzer gehört.
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'}}
Sie können den Zugriff auf Objektspeicherressourcen auf einen bestimmten Benutzer beschränken, indem Sie der Policy eine Bedingung hinzufügen, die die OCID des Benutzers in einer Variablen angibt.
Die folgende Policy beschränkt den Zugriff auf die Ressourcen im ObjectStorage
-Compartment auf die angegebene Benutzer-OCID:
Allow any-user to read object-family in compartment ObjectStorage where request.user.id ='ocid1.user.oc1..<user_OCID>'
Sie können den Zugriff nur auf Anforderungen beschränken, die von einer zulässigen IP-Adresse stammen. Zuerst erstellen Sie eine Netzwerkquelle , um die zulässigen IP-Adressen anzugeben. Danach fügen Sie der Policy eine Bedingung hinzu, um den Zugriff auf die IP-Adressen in der Netzwerkquelle einzuschränken.
Die folgende Policy beschränkt den Zugriff nur auf IP-Adressen in einer Netzwerkquelle corpnet
, die die zulässigen IP-Adressen definiert:
Allow group CorporateUsers to manage object-family in tenancy where request.networkSource.name='corpnet'
Informationen über das Erstellen von Netzwerkquellen und deren Verwendung in Policys finden Sie unter Netzwerkquellen verwalten.
Im folgenden Beispiel kann die Gruppe BucketUsers
alle Aktionen mit Buckets und Objekten ausführen, mit Ausnahme von Löschvorgängen.
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'
Das folgende Beispiel schränkt das Löschen von Objekten aus dem Bucket (BucketFoo
) weiter ein.
Allow group BucketUsers to manage objects in tenancy
where any {target.bucket.name!='BucketFoo',
all {target.bucket.name='BucketFoo',
request.permission!='OBJECT_DELETE'}}
Verwenden Sie Aufbewahrungsregeln, um WORM-Compliance zu erreichen. Aufbewahrungsregeln werden auf Bucket-Ebene konfiguriert und auf alle einzelnen Objekte im Bucket angewendet. Bei zeitgebundenen Regeln können Sie Objekte oder Objektmetadaten während der angegebenen Dauer nicht aktualisieren, überschreiben oder löschen. Bei unbegrenzten Regeln können Sie diese Aktionen erst ausführen, nachdem die Aufbewahrungsregel gelöscht wurde.
Mit den folgenden Policys können BucketUsers
die Buckets und Objekte im Mandanten verwalten. Außerdem ermöglichen sie es BucketUsers
, Aufbewahrungsregeln zu erstellen, zu verwalten und zu löschen. Mit diesen Policys können BucketUsers
Aufbewahrungsregeln für eine bestimmte Zeit sperren.
Allow group BucketUsers to manage buckets in tenancy
Allow group BucketUsers to manage objects in tenancy
Mit den folgenden restriktiveren Policys können BucketUsers
alle Aktionen an Buckets und Objekten ausführen, außer Aufbewahrungsregeln sperren.
Allow group BucketUsers to manage buckets in tenancy
where request.permission!='RETENTION_RULE_LOCK'
Allow group BucketUsers to manage objects in tenancy
Die Berechtigungen BUCKET_CREATE
und BUCKET_UDPATE
sind erforderlich, um Buckets zu erstellen oder vorhandene private Buckets öffentlich zu machen. Durch das Entfernen dieser Berechtigungen wird verhindert, dass Benutzer Buckets erstellen oder bestehende Buckets öffentlich machen können.
Allow group BucketUsers to manage buckets in tenancy
where any {request.permission='BUCKET_INSPECT',
request.permission='BUCKET_READ',
request.permission='PAR_MANAGE'}
Weitere Informationen zu Objektspeicher-Policys und zum Anzeigen weiterer Beispiele finden Sie unter Details zu Objektspeicher, Archivspeicher und Datenübertragung.
Zugriffskontrolle
Sperren Sie neben dem Erstellen von IAM-Policys den Zugriff auf Object Storage mit Features wie vorab authentifizierten Anforderungen.
Öffentliche Buckets
Ein öffentlicher Bucket ermöglicht nicht authentifizierte und anonyme Lesezugriffe auf alle Objekte im Bucket. Prüfen Sie den vorgesehenen Anwendungsfall für öffentliche Buckets sorgfältig, bevor Sie öffentliche Buckets aktivieren.
Es wird empfohlen, vorab authentifizierte Anforderungen zu verwenden, um Benutzern ohne IAM-Zugangsdaten Bucket- oder Objektzugriff zu erteilen. Standardmäßig werden Buckets ohne öffentlichen Zugriff erstellt (Zugriffstyp ist auf NoPublicAccess
gesetzt).
Sie können vorhandene Buckets öffentlich machen, indem Sie den Bucket-Zugriffstyp in ObjectRead
oder ObjectReadWithoutList
ändern. Um die Gefahr zu minimieren, dass vorhandene Buckets versehentlich oder böswillig öffentlich gemacht werden, beschränken Sie die Berechtigung BUCKET_UPDATE
auf minimale IAM-Gruppen.
Der folgende CLI-Befehl gibt den public-access-type
zurück, der einem Bucket zugewiesen ist.
oci os bucket get -ns <your_namespace> --bucket-name <bucket_name> | grep "public-access-type"
Wenn das Attribut public-access-type
den Wert NoPublicAccess
aufweist, ist der Bucket privat. Ein anderer Wert wie ObjectRead
gibt einen öffentlichen Bucket an.
Vorab authentifizierte Anforderungen
Für Benutzer ohne IAM-Zugangsdaten wird empfohlen, vorab authentifizierte Anforderungen (PARs) zu verwenden, um zeitlich gebundenen Zugriff auf Objekte oder Buckets zu gewähren.
In einer vorab authentifizierten Anforderung kann ein IAM-Benutzer, der über die entsprechenden Berechtigungen für den Zugriff auf Objekte verfügt, spezielle URLs erstellen, die zeitgebundenen Zugriff auf diese Objekte gewähren. Weitere Informationen finden Sie unter Vorab authentifizierte Anforderungen verwenden.
Der Ersteller einer vorab authentifizierten Anforderung muss über die Berechtigung PAR_MANAGE
und die entsprechenden IAM-Berechtigungen für den Zugriffstyp verfügen, den Sie erteilen. Sie können eine vorab authentifizierte Anforderung erstellen, die Lese-, Schreib- oder Lese-/Schreibzugriff für eine der folgenden Aktionen erteilt:
- Alle Objekte im Bucket.
- Ein bestimmtes Objekt im Bucket.
- Alle Objekte im Bucket, die ein angegebenes Präfix aufweisen.
Bei Anforderungen, die für mehrere Objekte gelten, können Sie auch entscheiden, ob Benutzer diese Objekte auflisten dürfen.
Vorab authentifizierte Anforderungszugriffe auf einen Bucket werden in Auditlogs signiert. Vorab authentifizierte Anforderungszugriffe auf ein Objekt werden in Servicelogs protokolliert.
Die eindeutige URL, die das System bei der Erstellung einer vorab authentifizierten Anforderung bereitstellt, ist die einzige Möglichkeit, mit der ein Benutzer auf das Anforderungsziel zugreifen kann. Kopieren Sie die URL in den dauerhaften Speicher. Die URL wird nur beim Erstellen angezeigt, wird nicht in Object Storage gespeichert und kann später nicht abgerufen werden.
Der folgende CLI-Befehl gibt eine Liste mit Objekt-PARs in einem Bucket zurück.
oci os preauth-request list -ns <your_namespace> -bn <bucket_name>
Cloud Guard
Aktivieren Sie Cloud Guard, und verwenden Sie es, um Sicherheitsprobleme in Object Storage zu erkennen und darauf zu reagieren.
Wenn ein Problem erkannt wird, schlägt Cloud Guard Korrekturmaßnahmen vor. Sie können Cloud Guard auch so konfigurieren, dass bestimmte Aktionen automatisch ausgeführt werden. Cloud Guard enthält die folgenden Detektorregeln für Object Storage.
- Bucket ist öffentlich
- Object Storage-Bucket ist mit einem von Oracle verwalteten Schlüssel verschlüsselt
- IAM-Kundenschlüssel erstellt
Eine Liste aller verfügbaren Detektorregeln in Cloud Guard finden Sie unter Detektorrezeptreferenz.
Aktivieren Sie Cloud Guard, falls noch nicht geschehen, und konfigurieren Sie es so, dass es die Compartments überwacht, die Ihre Ressourcen enthalten. Sie können Cloud Guard-Ziele konfigurieren, um den gesamten Mandanten (Root Compartment und alle Sub-Compartments) zu prüfen oder nur bestimmte Compartments zu prüfen. Siehe Erste Schritte mit Cloud Guard.
Nachdem Sie Cloud Guard aktiviert haben, können Sie erkannte Sicherheitsprobleme anzeigen und beheben. Siehe Gemeldete Probleme verarbeiten.
Sicherheitszonen
Durch die Verwendung von Sicherheitszonen wird sichergestellt, dass Ihre Ressourcen in Object Storage den Best Practices zur Sicherheit entsprechen.
Eine Sicherheitszone ist mit mindestens einem Compartment und einem Sicherheitszonenrezept verknüpft. Wenn Sie Ressourcen im Compartment einer Sicherheitszone erstellen und aktualisieren, validiert Oracle Cloud Infrastructure diese Vorgänge anhand der Liste der Sicherheitszonen-Policys im Rezept. Wenn eine Policy im Rezept verletzt wird, wird der Vorgang abgelehnt. Die folgenden Sicherheitszonen-Policys sind für Ressourcen in Object Storage verfügbar.
deny public_buckets
deny buckets_without_vault_key
Eine Liste aller Sicherheitszonen-Policys finden Sie unter Sicherheitszonen-Policys.
Um vorhandene Ressourcen in ein Compartment in einer Sicherheitszone zu verschieben, müssen die Ressourcen allen Sicherheitszonen-Policys im Rezept der Zone entsprechen. Ebenso können Ressourcen in einer Sicherheitszone nicht in ein Compartment außerhalb der Sicherheitszone verschoben werden, weil es möglicherweise weniger sicher ist. Siehe Sicherheitszonen verwalten.
Datenverschlüsselung
Erstellen und rotieren Sie Verschlüsselungsschlüssel im Vault-Service, um Ihre Ressourcen in Object Storage zu schützen.
Alle Daten in Object Storage werden im Rest mit AES-256 verschlüsselt. Die Verschlüsselung ist standardmäßig aktiviert und kann nicht deaktiviert werden. Jedes Objekt wird mit seinem Verschlüsselungsschlüssel verschlüsselt, und die Objektverschlüsselungsschlüssel werden mit einem Masterverschlüsselungsschlüssel verschlüsselt.
Ein Vault ist eine logische Entity, in der die Verschlüsselungsschlüssel gespeichert werden, die Sie zum Schutz Ihrer Daten verwenden. Je nach Schutzmodus werden Schlüssel entweder auf dem Server gespeichert oder auf hochverfügbaren und dauerhaften Hardwaresicherheitsmodulen (HSMs) gespeichert. Unsere HSMs erfüllen die Sicherheitszertifizierung nach Federal Information Processing Standards (FIPS) 140-2 der Sicherheitsebene 3. Siehe Vaults verwalten und Schlüssel verwalten.
Obwohl Standardverschlüsselungsschlüssel automatisch generiert werden können, wenn Sie bestimmte Oracle Cloud Infrastructure-Ressourcen erstellen, wird empfohlen, dass Sie Ihre eigenen benutzerdefinierten Verschlüsselungsschlüssel im Vault-Service erstellen und verwalten.
Informationen zum Zuweisen eines benutzerdefinierten Verschlüsselungsschlüssels zu einem neuen oder einem vorhandenen Bucket finden Sie unter:
- Objektspeicher-Bucket erstellen
- Schlüssel einem Objektspeicher-Bucket zuweisen
- Datenverschlüsselungsschlüssel eines Objektspeicher-Buckets erneut verschlüsseln
- Object Storage-Objekte erneut verschlüsseln
Jedem Masterverschlüsselungsschlüssel wird automatisch eine Schlüsselversion zugewiesen. Wenn Sie einen Schlüssel rotieren, generiert der Vault-Service eine neue Schlüsselversion. Durch regelmäßiges Rotieren der Schlüssel wird die Datenmenge begrenzt, die von einer einzelnen Schlüsselversion verschlüsselt oder signiert wird. Wenn ein Schlüssel besteht, reduziert die Schlüsselrotation das Risiko für Ihre Daten. Siehe Schlüssel verwalten.
Es wird empfohlen, IAM-Policys zu verwenden, um die Erstellung, Rotation und Löschung von Verschlüsselungsschlüsseln streng zu begrenzen. Siehe Details zum Vault Service.
Sie können die clientseitige Verschlüsselung auch verwenden, um Objekte mit ihren Verschlüsselungsschlüsseln zu verschlüsseln, bevor sie in Object Storage-Buckets gespeichert werden. Kunden können die Amazon S3-Kompatibilitäts-API zusammen mit der clientseitigen Objektverschlüsselungsunterstützung im AWS-SDK für Java verwenden. Weitere Einzelheiten zu diesem SDK finden Sie unter Amazon S3-Kompatibilitäts-API .
Datendauerhaftigkeit
Erstellen Sie regelmäßige Backups Ihrer Daten in Object Storage.
- Verwenden Sie die Objektversionierung, um automatisch eine Objektversion zu erstellen, wenn ein neues Objekt hochgeladen, ein vorhandenes Objekt überschrieben oder ein Objekt gelöscht wird.
- Gewähren Sie die Berechtigungen
BUCKET_DELETE
undOBJECT_DELETE
nur möglichst wenigen IAM-Benutzern und -Gruppen. Erteilen Sie die Berechtigung zum Löschen nur Mandanten- und Compartment-Administratoren.
"Write once, read many" (WORM)-Compliance erfordert, dass Objekte nicht gelöscht oder geändert werden dürfen. Verwenden Sie Aufbewahrungsregeln, um WORM-Compliance zu erreichen. Aufbewahrungsregeln werden auf Bucket-Ebene konfiguriert und auf alle einzelnen Objekte im Bucket angewendet. Bei zeitgebundenen Regeln können Sie Objekte oder Objektmetadaten während der angegebenen Dauer nicht aktualisieren, überschreiben oder löschen. Bei unbegrenzten Regeln können Sie diese Aktionen erst ausführen, nachdem die Aufbewahrungsregel gelöscht wurde.
Eine unabhängige Bewertung der Fähigkeit der Object Storage-Aufbewahrungsregeln, gesetzliche Anforderungen zur Verwaltung und Aufbewahrung von Datensätzen zu erfüllen, finden Sie unter SEC 17a-4(f), FINRA 4511(c), CFTC 1.31(c)-(d) and MiFID II Compliance Assessment von Cohasset Associate.
Prüfsummen in der Datensicherheit
Um die Integrität von Objektdaten zu prüfen, wird eine MD5-Prüfsumme für alle Objekte angegeben, die in Object Storage hochgeladen wurden. Darüber hinaus können Sie eine der folgenden optionalen Prüfsummen auf Objekte anwenden, die in Object Storage hochgeladen wurden:
-
SHA256
-
SHA384
-
CRC32C
MD5-Prüfsumme verwenden
Sie sollten sicherstellen, dass die Offline-MD5-Prüfsumme eines Objekts mit dem Prüfsummenwert übereinstimmt, der von der Konsole oder API nach dem Upload zurückgegeben wird. Oracle Cloud Infrastructure stellt den Objektprüfsummenwert in der base64
-Codierung bereit. Um den base64
-codierten Prüfsummenwert auf hexadezimal zu setzen, verwenden Sie den folgenden Befehl:
python -c 'print "BASE64-ENCODED-MD5-VALUE".decode("base64").encode("hex")'
Linux stellt ein md5sum
-Befehlszeilenutility zur Berechnung des MD5-Prüfsummenwertes eines Objekts im hexadezimalen Format bereit.
MD5-Prüfsumme mit Multipart-Uploads verwenden
Object Storage unterstützt mehrteilige Uploads für effizientere und resilientere Uploadvorgänge, insbesondere für Large Objects. Bei einem Multipart-Upload werden Large Objects in kleinere Teile aufgeteilt, indem eine Teilgröße in MiB angegeben wird. Jeder Teil wird separat hochgeladen. Object Storage kombiniert dann alle Teile, um das ursprüngliche Objekt zu erstellen. Wenn Teile nicht hochgeladen werden können, muss der Upload nur für diese Teile wiederholt werden, nicht für das gesamte Objekt.
Bei einem Multipart-Upload werden die MD5-Prüfsummenwerte für jeden Teil berechnet, und eine MD5-Prüfsumme wird über alle einzelnen Prüfsummenwerte berechnet, um den Ausgabewert MD5 abzurufen. Um zu prüfen, ob der Wert MD5 für einen Multipart-Upload zurückgegeben wurde, befolgen Sie den Prozess für die Offlineberechnung der MD5-Prüfsumme. Ein Beispielskript für die Offlineberechnung eines MD5-Prüfsummenwerts für einen mehrteiligen Upload in Object Storage ist hier verfügbar: https://gist.github.com/itemir/f5bc9fded6483cd79c89ebf4ca1cfd30.
Prüfsumme SHA256 oder SHA384 verwenden
Einige Branchen haben regulatorische Anforderungen, um eine Prüfsummenmethode zu verwenden, die als stärker gilt als MD5. Diese Anforderungen erfordern häufig explizit SHA256 oder SHA384. Sie können den Algorithmus auswählen, der für das Compliance-System erforderlich ist. Beachten Sie, dass das Vorhandensein von MD5 nicht als unsicher oder nicht konform angesehen wird. Das Hinzufügen einer weiteren Prüfsummenmethode bietet eine zusätzliche Integritätsprüfung. Es wird erwartet, dass das Hinzufügen eines der SHA-Prüfsummentypen diese Anforderungen erfüllt.
~ echo "Test" | openssl dgst -sha256 -binary | base64
ydBMlWX8ZlyAaB+x2CmTgCaHH2bhT1AeCFMd9mk4p4k=
~ echo "Test" | openssl dgst -sha384 -binary | base64
B6T9J1V45Pkr3wb9V8ioT3u/WNk2zCkY4lAKZ3wYXfDUe2ImwIpVK8O42uUOANY2
CRC32C-Prüfsumme verwenden
Sie können die auf einem lokalen Speichersystem berechnete Prüfsumme mit der von Object Storage berechneten vergleichen. Dies ist mit Multipart-Uploads schwierig, da die berechnete Prüfsumme von der genauen Größe jedes Teils abhängt, was auf verschiedenen Systemen (oder mit verschiedenen Uploadeinstellungen) unterschiedlich sein kann.
Der Prüfsummentyp CRC32C gibt dieselbe Prüfsumme für dasselbe Objekt zurück, unabhängig davon, wie es hochgeladen wird. Dadurch können Kunden die von Object Storage berechnete CRC32C-Prüfsumme mit der vom lokalen Speicher oder anderen Clouds berechneten CRC32C-Prüfsumme vergleichen, unabhängig von den Einstellungen für den mehrteiligen Upload.
Zusätzliche Prüfsummentypen verwenden
Sie können pro hochgeladenem Objekt nur einen zusätzlichen Prüfsummentyp verwenden. MD5-Prüfsummen werden immer für jedes Objekt berechnet. Wenn Sie einen zusätzlichen Prüfsummentyp verwenden, können GET- und PUT-Befehle etwas längere Latenzzeit zum Abschließen haben, im Vergleich zu einem GET oder PUT für dasselbe Objekt ohne den zusätzlichen Prüfsummentyp.
Netzwerksicherheit
Sichern Sie den Netzwerkzugriff auf Ihre Ressourcen in Object Storage.
Bei der Übertragung zwischen Kundenclients (z.B. SDKs und CLIs) und öffentlichen Object Storage-Endpunkten werden Daten standardmäßig mit TLS 1.2 verschlüsselt. FastConnect Public Peering ermöglicht On-Premise-Zugriff auf Object Storage über ein privates Netzwerk und nicht über das öffentliche Internet. Siehe Zugriff auf Ihr On-Premise-Netzwerk.
Prüfen
Suchen Sie Zugriffslogs und andere Sicherheitsdaten für Object Storage.
Der Audit-Service zeichnet automatisch alle API-Aufrufe an Oracle Cloud Infrastructure-Ressourcen auf. Sie können Ihre Sicherheits- und Complianceziele erreichen, indem Sie mit dem Audit-Service alle Benutzeraktivitäten in Ihrem Mandanten überwachen. Da alle Konsolen-, SDK- und Befehlszeilenaufrufe über unsere APIs laufen, werden alle Aktivitäten aus diesen Quellen einbezogen. Auditdatensätze sind über eine authentifizierte, filterbare Abfrage-API verfügbar, oder sie können als in Batches verwendete Dateien aus Object Storage abgerufen werden. Zu den Inhalten des Auditlogs gehören die aufgetretenen Aktivitäten, der Benutzer, der diese initiiert hat, Datum und Uhrzeit der Anforderung sowie Quell-IP, Benutzer-Agent und HTTP-Header der Anforderung. Siehe Auditlogereignisse anzeigen.
{
"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"
}
}
Wenn Sie Cloud Guard in Ihrem Mandanten aktiviert haben, werden alle Benutzeraktivitäten gemeldet, die potenzielle Sicherheitsbedenken darstellen. Wenn ein Problem erkannt wird, schlägt Cloud Guard Korrekturmaßnahmen vor. Sie können Cloud Guard auch so konfigurieren, dass bestimmte Aktionen automatisch ausgeführt werden. Siehe Erste Schritte mit Cloud Guard und Gemeldete Probleme verarbeiten.