アクセス制御ポリシーエンドポイント

NOTE
ユーザートークンが渡される場合、トークンのユーザーは、リクエストされた組織の「組織管理者」役割を持っている必要があります。

アクセス制御ポリシーとは、属性をまとめて、許可されるアクションと許可されないアクションを確立するステートメントです。 これらのポリシーは、ローカルまたはグローバルにすることができ、他のポリシーを上書きできます。 属性ベースのアクセス制御APIの/policies エンドポイントを使用すると、ポリシーを管理するルールに関する情報と、それぞれの件名の条件を含むポリシーをプログラムで管理できます。

IMPORTANT
このエンドポイントは、データ使用ポリシーの管理に使用されるPolicy Service API/policies エンドポイントと混同しないでください。

はじめに

このガイドで使用するAPI エンドポイントは、属性ベースのアクセス制御APIの一部です。 先に進む前に、はじめる前にを参照し、関連ドキュメントへのリンク、このドキュメントのサンプル API 呼び出しを読み取るためのガイドおよび任意の Experience Platform API を正常に呼び出すために必要なヘッダーに関する重要な情報を確認してください。

ポリシーのリストの取得 list

組織内のすべての既存のポリシーを一覧表示するには、/policies エンドポイントにGET リクエストを行います。

API 形式

GET /policies

リクエスト

次のリクエストは、既存のポリシーのリストを取得します。

curl -X GET \
  https://platform.adobe.io/data/foundation/access-control/administration/policies \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \

応答

応答が成功すると、既存のポリシーのリストが返されます。

{
  {
      "id": "7019068e-a3a0-48ce-b56b-008109470592",
      "imsOrgId": "{IMS_ORG}",
      "createdBy": "{CREATED_BY}",
      "createdAt": 1652892767559,
      "modifiedBy": "{MODIFIED_BY}",
      "modifiedAt": 1652895736367,
      "name": "schema-field",
      "description": "schema-field",
      "status": "inactive",
      "subjectCondition": null,
      "rules": [
          {
              "effect": "Deny",
              "resource": "/orgs/{IMS_ORG}/sandboxes/xql/schemas/*/schema-fields/*",
              "condition": "{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}",
              "actions": [
                  "com.adobe.action.read",
                  "com.adobe.action.write",
                  "com.adobe.action.view"
              ]
          },
          {
              "effect": "Permit",
              "resource": "/orgs/{IMS_ORG}/sandboxes/*/schemas/*/schema-fields/*",
              "condition": "{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}",
              "actions": [
                  "com.adobe.action.delete"
              ]
          },
          {
              "effect": "Deny",
              "resource": "/orgs/{IMS_ORG}/sandboxes/delete-sandbox-adfengine-test-8/segments/*",
              "condition": "{\"!\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"custom/\",{\"var\":\"resource.labels\"}]}]}",
              "actions": [
                  "com.adobe.action.write"
              ]
          }
      ],
      "_etag": "\"0300593f-0000-0200-0000-62852ff80000\""
  },
  {
      "id": "13138ef6-c007-495d-837f-0a248867e219",
      "imsOrgId": "{IMS_ORG}",
      "createdBy": "{CREATED_BY}",
      "createdAt": 1652859368555,
      "modifiedBy": "{MODIFIED_BY}",
      "modifiedAt": 1652890780206,
      "name": "Documentation-Copy",
      "description": "xyz",
      "status": "active",
      "subjectCondition": null,
      "rules": [
          {
              "effect": "Permit",
              "resource": "orgs/{IMS_ORG}/sandboxes/ro-sand/schemas/*/schema-fields/*",
              "condition": "{\"!\":[{\"or\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"and\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}]}]}",
              "actions": [
                  "com.adobe.action.read"
              ]
          },
          {
              "effect": "Deny",
              "resource": "orgs/{IMS_ORG}/sandboxes/*/segments/*",
              "condition": "{\"!\":[{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"custom/\",{\"var\":\"resource.labels\"}]}]}]}",
              "actions": [
                  "com.adobe.action.read"
              ]
          }
      ],
      "_etag": "\"0300d43c-0000-0200-0000-62851c9c0000\""
  },
}
プロパティ
説明
id
ポリシーに対応するID。 この識別子は自動生成され、ポリシーの検索、更新、削除に使用できます。
imsOrgId
クエリされたポリシーにアクセスできる組織。
createdBy
ポリシーを作成したユーザーのID。
createdAt
ポリシーが作成された時刻。 createdAt プロパティはUnix エポックタイムスタンプで表示されます。
modifiedBy
ポリシーを最後に更新したユーザーのID。
modifiedAt
ポリシーが最後に更新された時刻。 modifiedAt プロパティはUnix エポックタイムスタンプで表示されます。
name
ポリシーの名前。
description
(オプション)特定のポリシーに関する詳細情報を提供するために追加できるプロパティ。
status
ポリシーの現在のステータスです。 このプロパティは、ポリシーが現在activeinactiveかを定義します。
subjectCondition
被写体に適用される条件。 件名は、アクションを実行するためにリソースへのアクセスを要求する特定の属性を持つユーザーです。 この場合、subjectConditionは件名の属性に適用されるクエリのような条件です。
rules
ポリシーを定義するルールのセット。 ルールは、被写体がリソースに対してアクションを正常に実行するために、許可される属性の組み合わせを定義します。
rules.effect
actionconditionresourceの値を考慮した後に生じる効果。 指定できる値はpermitdenyまたはindeterminateです。
rules.resource
被写体がアクセスできる、またはアクセスできないアセットまたはオブジェクト。 リソースには、ファイル、アプリケーション、サーバー、APIなどがあります。
rules.condition
リソースに適用される条件。 例えば、リソースがスキーマの場合、スキーマには、そのスキーマに対するアクションが許可されるか許可されないかに影響する特定のラベルを適用できます。
rules.action
クエリされたリソースに対して被写体が実行できるアクション。 指定できる値はreadcreateeditdeleteです。

IDでポリシーの詳細を検索 lookup

リクエストパスにポリシーIDを指定して、その個々のポリシーに関する情報を取得しながら、/policies エンドポイントにGET リクエストを行います。

API 形式

GET /policies/{POLICY_ID}
パラメーター
説明
{POLICY_ID}
取得するポリシーのID。

リクエスト

次のリクエストは、個々のポリシーに関する情報を取得します。

curl -X GET \
  https://platform.adobe.io/data/foundation/access-control/administration/policies/13138ef6-c007-495d-837f-0a248867e219 \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \

応答

リクエストが成功すると、クエリされたポリシーIDに関する情報が返されます。

{
  "policies": [
    {
      "id": "7019068e-a3a0-48ce-b56b-008109470592",
      "imsOrgId": "5555467B5D8013E50A494220@AdobeOrg",
      "createdBy": "example@AdobeID",
      "createdAt": 1652892767559,
      "modifiedBy": "example@AdobeID",
      "modifiedAt": 1652895736367,
      "name": "schema-field",
      "description": "schema-field",
      "status": "inactive",
      "subjectCondition": null,
      "rules": [
        {
          "effect": "Deny",
          "resource": "/orgs/5555467B5D8013E50A494220@AdobeOrg/sandboxes/xql/schemas/*/schema-fields/*",
          "condition": "{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}",
          "actions": [
            "com.adobe.action.read",
            "com.adobe.action.write",
            "com.adobe.action.view"
          ]
        },
        {
          "effect": "Permit",
          "resource": "/orgs/5555467B5D8013E50A494220@AdobeOrg/sandboxes/*/schemas/*/schema-fields/*",
          "condition": "{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}",
          "actions": [
            "com.adobe.action.delete"
          ]
        },
        {
          "effect": "Deny",
          "resource": "/orgs/5555467B5D8013E50A494220@AdobeOrg/sandboxes/delete-sandbox-adfengine-test-8/segments/*",
          "condition": "{\"!\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"custom/\",{\"var\":\"resource.labels\"}]}]}",
          "actions": [
            "com.adobe.action.write"
          ]
        }
      ],
      "etag": "\"0300593f-0000-0200-0000-62852ff80000\""
    }
  ]
}
プロパティ
説明
id
ポリシーに対応するID。 この識別子は自動生成され、ポリシーの検索、更新、削除に使用できます。
imsOrgId
クエリされたポリシーにアクセスできる組織。
createdBy
ポリシーを作成したユーザーのID。
createdAt
ポリシーが作成された時刻。 createdAt プロパティはUnix エポックタイムスタンプで表示されます。
modifiedBy
ポリシーを最後に更新したユーザーのID。
modifiedAt
ポリシーが最後に更新された時刻。 modifiedAt プロパティはUnix エポックタイムスタンプで表示されます。
name
ポリシーの名前。
description
(オプション)特定のポリシーに関する詳細情報を提供するために追加できるプロパティ。
status
ポリシーの現在のステータスです。 このプロパティは、ポリシーが現在activeinactiveかを定義します。
subjectCondition
被写体に適用される条件。 件名は、アクションを実行するためにリソースへのアクセスを要求する特定の属性を持つユーザーです。 この場合、subjectConditionは件名の属性に適用されるクエリのような条件です。
rules
ポリシーを定義するルールのセット。 ルールは、被写体がリソースに対してアクションを正常に実行するために、許可される属性の組み合わせを定義します。
rules.effect
actionconditionresourceの値を考慮した後に生じる効果。 指定できる値はpermitdenyまたはindeterminateです。
rules.resource
被写体がアクセスできる、またはアクセスできないアセットまたはオブジェクト。 リソースには、ファイル、アプリケーション、サーバー、APIなどがあります。
rules.condition
リソースに適用される条件。 例えば、リソースがスキーマの場合、スキーマには、そのスキーマに対するアクションが許可されるか許可されないかに影響する特定のラベルを適用できます。
rules.action
クエリされたリソースに対して被写体が実行できるアクション。 指定できる値はreadcreateeditdeleteです。

ポリシーを作成する create

新しいポリシーを作成するには、/policies エンドポイントにPOST リクエストを行います。

API 形式

POST /policies

リクエスト

次のリクエストは、acme-integration-policyという名前の新しいポリシーを作成します。

curl -X POST \
  https://platform.adobe.io/data/foundation/access-control/administration/policies \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}'
  -d'{
      "name": "acme-integration-policy",
      "description": "Policy for ACME",
      "imsOrgId": "{IMS_ORG}",
      "rules": [
        {
          "effect": "Permit",
          "resource": "/orgs/{IMS_ORG}/sandboxes/*",
          "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
          "actions": [
            "com.adobe.action.read"
          ]
        }
      ]
    }'
パラメーター
説明
name
ポリシーの名前。
description
(オプション)特定のポリシーに関する詳細情報を提供するために追加できるプロパティ。
imsOrgId
ポリシーを含む組織。
rules
ポリシーを定義するルールのセット。 ルールは、被写体がリソースに対してアクションを正常に実行するために、許可される属性の組み合わせを定義します。
rules.effect
actionconditionresourceの値を考慮した後に生じる効果。 指定できる値はpermitdenyまたはindeterminateです。
rules.resource
被写体がアクセスできる、またはアクセスできないアセットまたはオブジェクト。 リソースには、ファイル、アプリケーション、サーバー、APIなどがあります。
rules.condition
リソースに適用される条件。 例えば、リソースがスキーマの場合、スキーマには、そのスキーマに対するアクションが許可されるか許可されないかに影響する特定のラベルを適用できます。
rules.action
クエリされたリソースに対して被写体が実行できるアクション。 指定できる値はreadcreateeditdeleteです。

応答

リクエストが成功すると、一意のポリシーIDと関連するルールを含む、新しく作成したポリシーが返されます。

{
    "id": "c3863937-5d40-448d-a7be-416e538f955e",
    "imsOrgId": "{IMS_ORG}",
    "createdBy": "{CREATED_BY}",
    "createdAt": 1652988384458,
    "modifiedBy": "{MODIFIED_BY}",
    "modifiedAt": 1652988384458,
    "name": "acme-integration-policy",
    "description": "Policy for ACME",
    "status": "active",
    "subjectCondition": null,
    "rules": [
        {
            "effect": "Permit",
            "resource": "/orgs/{IMS_ORG}/sandboxes/*",
            "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
            "actions": [
                "com.adobe.action.read"
            ]
        }
    ],
    "_etag": null
}
プロパティ
説明
id
ポリシーに対応するID。 この識別子は自動生成され、ポリシーの検索、更新、削除に使用できます。
name
ポリシーの名前。
rules
ポリシーを定義するルールのセット。 ルールは、被写体がリソースに対してアクションを正常に実行するために、許可される属性の組み合わせを定義します。
rules.effect
actionconditionresourceの値を考慮した後に生じる効果。 指定できる値はpermitdenyまたはindeterminateです。
rules.resource
被写体がアクセスできる、またはアクセスできないアセットまたはオブジェクト。 リソースには、ファイル、アプリケーション、サーバー、APIなどがあります。
rules.condition
リソースに適用される条件。 例えば、リソースがスキーマの場合、スキーマには、そのスキーマに対するアクションが許可されるか許可されないかに影響する特定のラベルを適用できます。
rules.action
クエリされたリソースに対して被写体が実行できるアクション。 指定できる値はreadcreateeditdeleteです。

ポリシーIDによるポリシーの更新 put

個々のポリシーのルールを更新するには、更新するポリシーのIDをリクエストパスで指定しながら、/policies エンドポイントにPUT リクエストを行います。

API 形式

PUT /policies/{POLICY_ID}
パラメーター
説明
{POLICY_ID}
更新するポリシーのID。

リクエスト

curl -X PUT \
  https://platform.adobe.io/data/foundation/access-control/administration/policies/8cf487d7-3642-4243-a8ea-213d72f694b9 \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}'
  -d'{
      "id": "8cf487d7-3642-4243-a8ea-213d72f694b9",
      "imsOrgId": "{IMS_ORG}",
      "name": "test-2",
      "rules": [
      {
        "effect": "Deny",
        "resource": "/orgs/{IMS_ORG}/sandboxes/*",
        "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
        "actions": [
          "com.adobe.action.read"
        ]
      }
    ]
  }'

応答

応答が成功すると、更新されたポリシーが返されます。

{
    "id": "8cf487d7-3642-4243-a8ea-213d72f694b9",
    "imsOrgId": "{IMS_ORG}",
    "createdBy": "{CREATED_BY}",
    "createdAt": 1652988866647,
    "modifiedBy": "{MODIFIED_BY}",
    "modifiedAt": 1652989297287,
    "name": "test-2",
    "description": null,
    "status": "active",
    "subjectCondition": null,
    "rules": [
        {
            "effect": "Deny",
            "resource": "/orgs/{IMS_ORG}/sandboxes/*",
            "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
            "actions": [
                "com.adobe.action.read"
            ]
        }
    ],
    "_etag": null
}

ポリシープロパティの更新 patch

個々のポリシーのプロパティを更新するには、リクエストパスで更新するポリシーのIDを指定しながら、/policies エンドポイントに対してPATCH リクエストを行います。

API 形式

PATCH /policies/{POLICY_ID}
パラメーター
説明
{POLICY_ID}
更新するポリシーのID。

リクエスト

次のリクエストは、ポリシーID c3863937-5d40-448d-a7be-416e538f955e/descriptionの値を置き換えます。

curl -X PATCH \
  https://platform.adobe.io/data/foundation/access-control/administration/policies/c3863937-5d40-448d-a7be-416e538f955e \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}'
  -d'{
    "operations": [
      {
        "op": "replace",
        "path": "/description",
        "value": "Pre-set policy to be applied for ACME"
      }
    ]
  }'
運用
説明
op
役割の更新に必要なアクションを定義するために使用される操作呼び出し。 操作には、addreplaceremove があります。
path
更新するパラメーターのパス。
value
パラメーターの更新に使用する新しい値。

応答

応答が成功すると、クエリされたポリシーIDが更新された説明で返されます。

{
    "id": "c3863937-5d40-448d-a7be-416e538f955e",
    "imsOrgId": "{IMS_ORG}",
    "createdBy": "acp_accessControlService",
    "createdAt": 1652988384458,
    "modifiedBy": "acp_accessControlService",
    "modifiedAt": 1652988384458,
    "name": "acme-integration-policy",
    "description": "Pre-set policy to be applied for ACME",
    "status": "active",
    "subjectCondition": null,
    "rules": [
        {
            "effect": "Permit",
            "resource": "/orgs/{IMS_ORG}/sandboxes/*",
            "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
            "actions": [
                "com.adobe.action.read"
            ]
        }
    ],
    "_etag": null
}

ポリシーの削除 delete

ポリシーを削除するには、削除するポリシーのIDを指定しながら、/policies エンドポイントに対してDELETE リクエストを行います。

API 形式

DELETE /policies/{POLICY_ID}
パラメーター
説明
{POLICY_ID}
削除するポリシーの ID。

リクエスト

次のリクエストは、c3863937-5d40-448d-a7be-416e538f955eのIDを持つポリシーを削除します。

curl -X DELETE \
  https://platform.adobe.io/data/foundation/access-control/administration/policies/c3863937-5d40-448d-a7be-416e538f955e \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \

応答

正常な応答の場合は、空白の本文とともに HTTP ステータス 204 (コンテンツなし)が返されます。

削除を確認するには、ポリシーに対するルックアップ(GET)リクエストを試みます。 ポリシーが管理から削除されたため、HTTP ステータス 404 (見つかりません)が表示されます。

recommendation-more-help
experience-platform-help-access-control