Zugriff auf Objekte in einem Bucket mithilfe von IAM-Zugriffsbedingungen zuweisen

IAM-Zugriffsrichtlinien ermöglichen die Vergabe von Berechtigungen in einem „ Cloud Object Storage “-Bucket an bestimmte Objektgruppen. Dieser Ansatz ermöglicht eine differenzierte Zugriffssteuerung für den Datenzugriff und macht ihn in Szenarios nützlich, in denen verschiedene Benutzer oder Anwendungen auf unterschiedliche Teile eines Buckets zugreifen müssen.

Wenn der Zugriff auf das gesamte Bucket erforderlich ist (d. h., wenn keine differenzierte Zugriffssteuerung erforderlich ist), folgen Sie den Informationen unter Zugriff auf ein einzelnes Bucket zuweisen.

Jedes Objekt, das in einem Cloud Object Storage-Bucket gespeichert ist, hat einen eindeutigen Schlüssel. Diese Schlüssel folgen häufig einer hierarchischen Struktur, die einem Dateisystem ähnelt.

Verwandte Links zu IAM-Zugriffsrichtlinien

Beispiel

  • Ein einzelnes Objekt mit dem Schlüssel "folder1/subfolder1/file.txt" kann einen Ordner oder eine Verzeichnishierarchie simulieren, wobei das Verzeichnis “folder1” ein Unterverzeichnis mit dem Namen “sub-folder1” enthält, das eine Datei enthält "file.txt". Der Zugriff kann auf jeder Ordnerebene zugewiesen werden.
  • Eine Zugriffsrichtlinie kann für alle Objekte und-im Ordner *“folder1”*erstellt werden oder der Zugriff kann nur für Objekte im Unterverzeichnis *“subfolder1”*zugewiesen werden.

Ein Richtlinienadministrator kann Zugriff auf einzelne Objekte und Ordner zuweisen, indem er beim Erstellen von IAM-Zugriffsrichtlinien Bedingungen konfiguriert. Im nächsten Abschnitt wird beschrieben, wie diese Richtlinientypen erstellt werden.

Differenzierte Richtlinie für die Zugriffssteuerung erstellen

Der erste Schritt beim Erteilen von Zugriff auf einzelne Objekte innerhalb eines Buckets ist das Erstellen einer IAM-Richtlinie. Weitere Informationen zum Erstellen einer IAM-Zugriffsrichtlinie für Object Storage finden Sie im Lernprogramm Cloud Object Storage Zugriff auf ein einzelnes Object Storage-Bucket begrenzen. Weitere allgemeine Informationen zum Erstellen von IAM-Richtlinien finden Sie unter Funktionsweise von IBM Cloud IAM. Die folgenden Punkte sind wichtige Komponenten für die Erstellung einer IAM-Zugriffsrichtlinie für Ihre Ressourcen in „ Object Storage “.

Betreff

Das Subjekt einer Zugriffsrichtlinie kann ein einzelner Benutzer, eine Zugriffsgruppe, eine Service-ID oder ein vertrauenswürdiges Profil sein. Weitere Informationen zu den Subjekttypen, die auf eine Richtlinie angewendet werden können, finden Sie unter Was sind IAM-Richtlinien und wer kann sie zuweisen?.

Service

Der Service ist der IBM Cloud-Service, der die Ressource enthält, der Sie den Zugriff zuweisen möchten. Verwenden Sie zum Zuweisen von Zugriff auf einzelne Objekte den Service Cloud Object Storage.

Ressource

IBM Cloud® Object Storage unterstützt die folgenden Ressourcenziele:

  • Ressourcengruppen-ID
  • Serviceinstanz
  • Ressourcentyp mit Wert "bucket"
  • Ressourcen-ID (Bucketname)

Rolle

IBM Cloud-Zugriffsrollen sind Gruppen von Aktionen. Zugriffsrollen ermöglichen es dem Subjekt, bestimmte Aufgaben im Rahmen der in der Richtlinie definierten Zielressourcen auszuführen. Cloud Object Storage unterstützt mehrere vordefinierte Servicerollen, die die Zuordnung von Berechtigungen vereinfachen. Cloud Object Storage ermöglicht auch die Erstellung angepasster Rollen. Weitere Informationen zu den unterstützten Rollen für Cloud Object Storagefinden Sie unter Identity and Access Management-Rollen.

Eine Liste der Cloud Object Storage-Rollen und ihrer Interaktion mit Bedingungen finden Sie in dieser Tabelle.

Bedingung

Wenn eine Ressource identifiziert wird, kann eine Bedingung verwendet werden, um den Bereichszugriff für ein Subjekt auf einzelne Objekte in einem Bucket weiter zu definieren, was als differenzierte Zugriffssteuerung bezeichnet wird.

Eine einzelne IAM-Richtlinie kann mehr als eine Bedingung haben, indem sie eine Anweisung OR oder AND verwendet, um die Bedingungen zu kombinieren. Die Bedingungsanweisung (die mindestens eine Bedingung enthält) sollte mit TRUE ausgewertet werden, damit die Benutzeranforderung berechtigt ist, die Aktion auszuführen. Die IAM-Richtlinie verweigert jede Aktion, die nicht ausgewertet werden kann TRUE. Die Richtlinienanweisung sollte alle Bedingungsattribute enthalten, die für die Rolle erforderlich sind. Wenn die Richtlinienanweisung nicht alle Bedingungsattribute enthält, die für die Rolle erforderlich sind, werden die Aktionen, die den übergangenen Bedingungsattributen unterliegen, verweigert.

Verwenden Sie eine Richtlinie ohne Bedingungsattribute, um uneingeschränkten Zugriff, wie durch die Rolle definiert, auf die Zielressource zu erteilen.

Verwenden Sie die IAM- v2-Richtlinie, um eine IAM-Richtlinie mit attributbasierten Bedingungen zu erstellen.

Bedingungen in einer IAM-Richtlinie verwenden

Cloud Object Storage unterstützt die folgenden Attribute, um Bedingungen für die Zuweisung differenzierten Zugriffs auf Cloud Object Storage-Ressourcen anzugeben:

Präfix und Begrenzer

Präfix und Trennzeichen werden zusammen verwendet, um alle Listungsberechtigungen auf bestimmte Objekte in einem Bucket zu beschränken.

  • Das Bedingungsattribut Präfix definiert das Präfix für die Gruppe von Objektschlüsseln, die diese Bedingung für das Auflisten von Objekten oder Ordnern zulassen sollte. In dem Objekt mit dem Namen *"folder1/subfolder1/file.txt"*sind beispielsweise sowohl "folder1/" als auch “folder1/subfolder1/” mögliche Präfixe.

  • Ein Begrenzer hilft dem Benutzer beim Navigieren im Bucket, als wäre es eine Dateihierarchie. Das Zuweisen einer Begrenzerbedingungsanweisung beschränkt den Typ der Ordnerstruktur, die der Benutzer in der Liste generieren kann. In einem Objekt mit dem Namen *"folder1/subfolder1/file.txt"*kann das Trennzeichen "/" verwendet werden, um eine Ordnerhierarchie zu simulieren, bei der jeder Ordner durch ein *"/"*getrennt ist. Wenn eine Bedingungsanweisung nur den Begrenzer *"/"*zulässt, ist eine Listenanforderung mit einem anderen Begrenzerwert nicht zulässig.

In der Regel werden das Präfix und das Trennzeichen zusammen in einer Bedingungsanweisung mit einem AND Operator verwendet. In einer Bedingungsanweisung kann ein Präfix ohne Begrenzer verwendet werden. Wenn die Richtlinie nur mit einem Präfix und nicht mit einer Begrenzerbedingungsanweisung konfiguriert ist, kann der Benutzer einen beliebigen oder keinen Begrenzer zum Auflisten der Objekte verwenden.

Beispiele für die Verwendung von Bedingungsanweisungen für Präfix und Begrenzer

Betrachten Sie das Objekt "folder1/subfolder1/file.txt":

Präfix "folder1/" AND ohne Begrenzer

  • Sie können eine Liste aller Objekte zurückgeben, die mit folder1/ beginnen, indem Sie eine Listenanforderung für folder1/ ausführen und keinen Begrenzer angeben.
  • Wenn Sie in der Listenanforderung das Trennzeichen "/" verwenden, ist die Anzeige auf die erste Ebene von Objekten und Unterordnern in *folder1/*beschränkt.
  • Wenn der Benutzer versucht, den Unterordner aufzulisten (Anforderungen zum Auflisten des Präfix = “folder1/subfolder1/”), wird der Zugriff verweigert.

Präfix von "folder1/" AND Begrenzer von "/"

  • Sie können die Objekte und Unterordner nur in der ersten Ebene von folder1auflisten.
  • Sie können nur Anforderungen auflisten, die den Begrenzer *"/"*angeben.
  • Wenn Sie versuchen, den Inhalt von subfolder1aufzulisten, wird der Zugriff verweigert. (Der Benutzer muss die Bedingung haben, dass das Präfix “folder1/subfolder1/" zulässig ist, damit der Inhalt von subfolder1aufgelistet werden kann.)

Die folgenden APIs unterliegen den Bedingungen für Präfix/Begrenzer:

Die vollständige Liste der Aktionen und der unterstützten Zustandsattribute finden Sie unter „ Identity and Access Management-Aktionen “.

Um einem differenzierten Benutzer Zugriff zum Navigieren zu seinem Ordner in der Benutzerschnittstelle zu erteilen, benötigt der Benutzer Zugriff zum Auflisten des Stammordners des Buckets. In Szenario 4 erfahren Sie, wie Sie die Richtlinie erstellen, um dies zu aktivieren.

Pfad

Der Pfad wird verwendet, um alle Lese-, Schreib-oder Verwaltungszugriffe auf bestimmte Objekte zu definieren.

Für ein Objekt namens *"folder1/subfolder1/file.txt"*ist der vollständige Objektschlüssel der Pfad. Um Lese-, Schreib-oder Verwaltungsaktionen auf dieses Objekt zu beschränken, definieren Sie eine Bedingung mit dem Pfad "folder1/subfolder1/file.txt".

Alle Cloud Object Storage-APIs, die direkt auf ein Objekt reagieren, unterliegen Pfadbedingungen. Eine Liste der Cloud Object Storage-API-Aktionen zur Unterstützung von Path finden Sie unter Identity and Access Management-Aktionen.

Es wird empfohlen, sowohl eine Bedingung für Präfix/Begrenzer als auch eine Bedingung für Pfad zu definieren, wenn einem Benutzer in derselben Richtlinie Lese-, Schreib-oder Listenaktionen erteilt werden. Manager, Writer, Reader und Content Reader sind Beispiele für Rollen, bei denen es empfohlen wird, sowohl ein Präfix/Begrenzer als auch eine Pfadbedingung zu definieren. In Szenario 4 erfahren Sie, wie Sie die Richtlinie erstellen, um dies zu aktivieren. Eine Bedingung, die Präfix/Begrenzer angibt, und eine Bedingung, die Pfad angibt, sollte logisch ORed in der IAM-Richtlinienanweisung sein, um beide Arten von Operationen (Lesen, Schreiben oder Verwalten von Objekten oder Listenobjekte) zuzulassen.

Mit Bedingungsattributen verwendete Operatoren

Beim Definieren von Bedingungsattributen können mehrere Operatoren verwendet werden. Die vollständige Liste der Operatoren, die für Attribute für Präfix, Begrenzer und Pfadbedingungen verwendet werden können, finden Sie unter Ressourcenattributbasierte Bedingungen.

Verwendung von Platzhalterzeichen

Die Werte eines Bedingungsattributs können ein Platzhalterzeichen enthalten, wenn der Operator stringMatch oder stringMatchAnyOf ist.

Beispiele für die Verwendung von Platzhalterzeichen in Bedingungsanweisungen:

Betrachten Sie das Objekt "folder1/subfolder1/file.txt":

Pfad von “folder1/*”

  • Sie erhalten Lese-, Schreib-oder Verwaltungszugriff, wie durch die Rolle definiert, auf alle Objekte, die mit *“folder1/”*beginnen.

Präfix von "folder1/*" AND ohne Begrenzer

  • Bei einer Objektlistenanforderung mit dem Präfix “folder1/” und ohne Begrenzer gibt die Benutzeranforderung alle Objekte zurück, die mit *“folder1/”*beginnen.
  • Für eine Objektlistenanforderung mit dem Präfix “folder1/” und dem Begrenzer *"/"*gibt die Anforderung eine Ansicht der Objekte und Ordner nur in der ersten Ebene von folder1zurück.
  • Für eine Objektlistenanforderung mit dem Präfix “folder1/subfolder1/” und dem Begrenzer *"/"*gibt die Anforderung eine Ansicht der Objekte und Ordner auf der ersten Ebene von folder1/subfolder1zurück.

Präfix von "folder1/*" AND Begrenzer von "/"

  • Für eine Objektlistenanforderung mit dem Präfix “folder1/” und dem Begrenzer *"/"*gibt die Anforderung eine Ansicht der Objekte und Ordner nur in der ersten Ebene von folder1zurück.
  • Für eine Objektlistenanforderung mit dem Präfix “folder1/subfolder1/” und dem Begrenzer *"/"*gibt die Anforderung die Objekte (und Unterordner) in folder1/subfolder1zurück.
  • Für eine Objektlistenanforderung mit dem Präfix “folder1/” und ohne Begrenzer ist die Anforderung nicht zulässig, da ein Begrenzer "/" in der Listenanforderung verwendet werden muss, damit diese Richtlinie als wahr ausgewertet wird.

Aktionen ohne Präfix/Begrenzer oder Pfad

Es gibt einige Cloud Object Storage-APIs, die keinen Pfad oder Präfix und keinen Begrenzer angeben. Die Cloud Object Storage-Servicerollen Manager, Writer, Reader und Content Reader sind Beispiele für Rollen, die diese Aktionen enthalten. Dies gilt auch für angepasste Rollen. Um diese Aktionen bei Verwendung einer Bedingung Präfix/Begrenzer oder Pfad zuzulassen, ist die folgende Bedingungsanweisung in der IAM-Richtlinie erforderlich:

((path stringExists = false) AND (prefix stringExists = false) AND (delimiter stringExists= false))

Die Tabelle Identity and Access Management-Aktionen enthält eine vollständige Liste der API-Aktionen, die keine Bedingungen für Präfix/Begrenzer oder Pfad unterstützen und die obige Anweisung erfordern, wenn differenzierter Zugriff verwendet wird.

Informationen zur Verwendung dieser Klausel in einer IAM-Richtlinie finden Sie im Abschnitt Neue Richtlinie für einen Benutzer mit Bedingungen erstellen.

Verwendung von Bedingungen mit Cloud Object Storage-Servicerollen

Verwendung von Bedingungen mit COS-Service-Rollen
Zugriffsrolle Beschreibung der Aktionen Unterstützte Bedingungsattribute
Manager Objekte öffentlich machen, Buckets und Objekte erstellen und löschen. Siehe Anmerkung
Schreibberechtigter Erstellen und löschen Sie Buckets und Objekte. Siehe Anmerkung
Leseberechtigter Buckets auflisten, Objekte auflisten und Objekte herunterladen. Siehe Anmerkung
Leseberechtigter für Inhalt (Content Reader) Objekte auflisten und herunterladen. Siehe Anmerkung
Objektleseberechtigter Objekte herunterladen. Pfad
Objektschreibberechtigter Laden Sie Objekte hoch. Pfad

Hinweis: Diese Rollen unterstützen die Bedingungsattribute 'Präfix/Begrenzer' und 'Pfad '. Die Rollen enthalten auch Aktionen, die keinen Pfad oder Präfix und Begrenzer angeben. Verwenden Sie die Klausel stringExists in der Bedingungsanweisung, um diese Aktionen zuzulassen.

Unter Link finden Sie eine vollständige Liste der Aktionen für jede Cloud Object Storage-Servicerolle und die Liste der Bedingungsattribute, die von den einzelnen Aktionen unterstützt werden.

Neue Richtlinie für einen Benutzer mit Bedingungen erstellen

Im folgenden Beispiel wird einem Benutzer die “Writer” Cloud Object Storage-Servicerolle mit der folgenden Funktionalität bereitgestellt:

  1. Listenzugriff auf die vollständige Objekthierarchie in einem Ordner namens "folder1/subfolder1".
  2. Lese-, Schreib-oder Löschzugriff auf alle Objekte im Ordner "subfolder1".
  3. Führen Sie ein Bucketkonfigurationsmanagement wie HEAD Bucket und GET/PUT Bucket Versioning durch.

Befehlszeilenschnittstelle einer IAM-Richtlinie mit einer Bedingung

Allgemeine Informationen zur Verwendung der CLI finden Sie im Abschnitt zur Verwendung der Befehlszeilenschnittstelle von IBM Cloud®.

Beispiel

policy.json:

{
"type": "access",
  "subject": {
    "attributes": [
      {
        "value": "IBMid-664001QJNU",
        "operator": "stringEquals",
        "key": "iam_id"
      }
    ]
  },
  "resource": {
    "attributes": [
      {
        "value": "cloud-object-storage",
        "operator": "stringEquals",
        "key": "serviceName"
      },
      {
        "value": "e6156134-5ed7-4f73-80d3-d6d1ef56f1f9",
        "operator": "stringEquals",
        "key": "serviceInstance"
      },
      {
        "value": "bucket",
        "operator": "stringEquals",
        "key": "resourceType"
      },
      {
        "value": "fgac-tf-test",
        "operator": "stringEquals",
        "key": "resource"
      }
    ]
  },
  "control": {
    "grant": {
      "roles": [
        {
          "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
        }      ]
    }
  },
  "rule": {
    "operator": "or",
    "conditions": [
      {
        "operator": "and",
        "conditions": [
          {
            "key": "{{resource.attributes.prefix}}",
            "operator": "stringMatch",
            "value": "folder1/subfolder1/*"
          },
          {
            "key": "{{resource.attributes.delimiter}}",
            "operator": "stringEqualsAnyOf",
            "value": [
              "/",
              ""
            ]
          }
        ]
      },
      {
        "key": "{{resource.attributes.path}}",
        "operator": "stringMatch",
        "value": "folder1/subfolder1/*"
      },
      {
        "operator": "and",
        "conditions": [
          {
            "key": "{{resource.attributes.delimiter}}",
            "operator": "stringExists",
            "value": false
          },
          {
            "key": "{{resource.attributes.prefix}}",
            "operator": "stringExists",
            "value": false
          },
          {
            "key": "{{resource.attributes.path}}",
            "operator": "stringExists",
            "value": false
          }
        ]
      }
    ]
  },
  "pattern": "attribute-based-condition:resource:literal-and-wildcard"
}
ibmcloud iam  user-policy-create hello@ibm.com --file policy.json --api-version v2

Verwenden Sie „ --api-version “ ( v2 ) mit ressourcenbasierten Attributbedingungen.

API einer IAM-Richtlinie mit einer Bedingung

Beispiel

Anforderung

curl -X POST 'https://iam.cloud.ibm.com/v2/policies' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
  "type": "access",
  "description": "access control for RESOURCE_NAME",
  "resource": {
    "attributes": [
      {
        "key": "serviceName",
        "operator": "stringEquals",
        "value": "cloud-object-storage"
      },
      {
        "key": "serviceInstance",
        "operator": "stringEquals",
        "value": "$SERVICE_INSTANCE"
      },
      {
        "key": "accountId",
        "operator": "stringEquals",
        "value": "$ACCOUNT_ID"
      },
      {
        "key": "resourceType",
        "operator": "stringEquals",
        "value": "bucket"
      },
      {
        "key": "resource",
        "operator": "stringEquals",
        "value": "$RESOURCE_NAME"
      }
    ]
  },
  "subject": {
    "attributes": [
      {
        "key": "iam_id",
        "operator": "stringEquals",
        "value": "IBMid-123453user"
      }
    ]
  },
  "control": {
    "grant": {
      "roles": [
        {
          "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
        }
      ]
    }
  },
  "rule": {
    "operator": "or",
    "conditions": [
      {
        "operator": "and",
        "conditions": [
          {
            "key": "{{resource.attributes.prefix}}",
            "operator": "stringMatch",
            "value": "folder1/subfolder1/*"
          },
          {
            "key": "{{resource.attributes.delimiter}}",
            "operator": "stringEqualsAnyOf",
            "value": [
              "/",
              ""
            ]
          }
        ]
      },
      {
        "key": "{{resource.attributes.path}}",
        "operator": "stringMatch",
        "value": "folder1/subfolder1/*"
      },
      {
        "operator": "and",
        "conditions": [
          {
            "key": "{{resource.attributes.delimiter}}",
            "operator": "stringExists",
            "value": false
          },
          {
            "key": "{{resource.attributes.prefix}}",
            "operator": "stringExists",
            "value": false
          },
          {
            "key": "{{resource.attributes.path}}",
            "operator": "stringExists",
            "value": false
          }
        ]
      }
    ]
  },
  "pattern": "attribute-based-condition:resource:literal-and-wildcard"
}'

Antwort

{
    "id": "d4078e99-d78a-4a50-95d6-b528e3c87dff",
    "description": "access control for RESOURCE_NAME",
    "type": "access",
    "subject": {
        "attributes": [
            {
                "key": "iam_id",
                "operator": "stringEquals",
                "value": "IBMid-123453user"
            }
        ]
    },
    "resource": {
        "attributes": [
            {
                "key": "serviceName",
                "operator": "stringEquals",
                "value": "cloud-object-storage"
            },
            {
                "key": "serviceInstance",
                "operator": "stringEquals",
                "value": "$SERVICE_INSTANCE"
            },
            {
                "key": "accountId",
                "operator": "stringEquals",
                "value": "$ACCOUNT_ID"
            },
            {
                "key": "resourceType",
                "operator": "stringEquals",
                "value": "bucket"
            },
            {
                "key": "resource",
                "operator": "stringEquals",
                "value": "$RESOURCE_NAME"
            }
        ]
    },
    "pattern": "attribute-based-condition:resource:literal-and-wildcard",
    "rule": {
        "operator": "or",
        "conditions": [
            {
                "operator": "and",
                "conditions": [
                    {
                        "key": "{{resource.attributes.prefix}}",
                        "operator": "stringMatch",
                        "value": "folder1/subfolder1/*"
                    },
                    {
                        "key": "{{resource.attributes.delimiter}}",
                        "operator": "stringEqualsAnyOf",
                        "value": [
                            "/",
                            ""
                        ]
                    }
                ]
            },
            {
                "key": "{{resource.attributes.path}}",
                "operator": "stringMatch",
                "value": "folder1/subfolder1/*"
            },
            {
                "operator": "and",
                "conditions": [
                    {
                        "key": "{{resource.attributes.delimiter}}",
                        "operator": "stringExists",
                        "value": false
                    },
                    {
                        "key": "{{resource.attributes.prefix}}",
                        "operator": "stringExists",
                        "value": false
                    },
                    {
                        "key": "{{resource.attributes.path}}",
                        "operator": "stringExists",
                        "value": false
                    }
                ]
            }
        ]
    },
    "control": {
        "grant": {
            "roles": [
                {
                    "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
                }
            ]
        }
    },
    "href": "https://iam.cloud.ibm.com/v2/policies/d4078e99-d78a-4a50-95d6-b528e3c87dff",
    "created_at": "2023-10-09T16:24:52.391Z",
    "created_by_id": " IBMid-12345user",
    "last_modified_at": "2023-10-09T16:24:52.391Z",
    "last_modified_by_id": " IBMid-12345user",
    "counts": {
        "account": {
            "current": 785,
            "limit": 4020
        },
        "subject": {
            "current": 1,
            "limit": 1000
        }
    },
    "state": "active",
    "version": "v1.0"
}

Terraform einer IAM-Richtlinie mit einer Bedingung

Beispiel

data "ibm_resource_group" "cos_group" {
      name = "Default"
}

resource "ibm_iam_user_policy" "example" {
 ibm_id = “user_email_id”
 roles = ["Writer"]
 resources {
  service = "cloud-object-storage"
  resource_type = "bucket"
  resource_instance_id = "cos instance guid"
  resource = "bucket-name"
}


rule_conditions {
 operator = "and"
 conditions {
  key = "{{resource.attributes.prefix}}"
  operator = "stringMatch"
  value = ["folder1/subfolder1/*"]
 }
 conditions {
  key = "{{resource.attributes.delimiter}}"
  operator = "stringEqualsAnyOf"
  value = ["/",""]
 }
 }
rule_conditions {
  key = "{{resource.attributes.path}}"
  operator = "stringMatch"
  value = ["folder1/subfolder1/*"]
 }
rule_conditions {
 operator = "and"
  conditions {
   key = "{{resource.attributes.delimiter}}"
   operator = "stringExists"
   value = ["false"]
  }
  conditions {
   key = "{{resource.attributes.prefix}}"
   operator = "stringExists"
   value = ["false"]
  }
  conditions {
   key = "{{resource.attributes.path}}"
   operator = "stringExists"
   value = ["false"]
  }
 }
rule_operator = "or"
 pattern = "attribute-based-condition:resource:literal-and-wildcard"
}

Weitere Informationen

Beispiele zur Verwendung der Bedingungsattribute Prefix/Delimiter oder Path finden Sie im Lernprogramm zur Steuerung des Zugriffs auf einzelne Objekte in einem Bucket.