Skip to content
Last updated

Permission Policy API

ここに示す操作は、Treasure Data REST APIを通じてパーミッションポリシーを設定、一覧表示、または更新するために使用されます。管理者が認証の詳細なパーミッションを有効にしていない場合、同じ動作が表示されない場合があります。最新バージョンにアップグレードするには、カスタマーサポートエンジニアにお問い合わせください。

GET /v3/access_control/policies

ポリシーの一覧を取得します。

HTTPメソッドリソース説明
GET/v3/access_control/policiesポリシーの一覧を取得

リクエストボディ

プロパティ名説明
policyobjectポリシーの名前

サンプルレスポンス

Status: 200 OK

    [
      {
        "id": 67,
        "account_id": 123,
        "name": "some_policy",
        "description": "written about the policy",
        "user_count": 3
      }
    ]

POST /v3/access_control/policies

ポリシーを作成します。

HTTPメソッドリソース説明
POST/v3/access_control/policiesポリシーを作成

URIパラメータ

パラメータ名必須説明
policyYesobject例:{"policy": { "name": "name of policy", "description": "Description of policy" }
nameYesstringポリシーの名前
descriptionstringポリシーの説明

サンプルリクエスト

{
  "policy": {
    "name": "some_policy",
    "description": "written about the policy"
  }
}

サンプルレスポンス

Status: 200 OK

{
  "id": 67,
  "account_id": 123,
  "name": "some_policy",
  "description": "written about the policy",
  "user_count": 3
}

GET /v3/access_control/policies/:policy_id

ポリシーに関する情報を取得します。

HTTPメソッドリソース説明
GET/v3/access_control/policies/:policy_id特定のポリシーを取得

URIパラメータ

パラメータ名必須説明
policy_idYesIntegerAccessControlPolicyId 例: 67

サンプルレスポンス

Status: 200 OK

{
  "id": 67,
  "account_id": 123,
  "name": "some_policy",
  "description": "written about the policy",
  "user_count": 3
}

PATCH /access_control/policies/:policy_id

ポリシーに関連する情報を更新します。

HTTPメソッドリソース説明
PATCH/v3/access_control/policies/:policy_id特定のポリシーを更新

URIパラメータ

パラメータ名

| 必須| | 説明 ---|---|---|--- policy_id| Yes| Integer| AccessControlPolicyId 例: 67 policy| Yes| Object| TBD

リクエストボディ

プロパティ名説明
policyobjectポリシーの名前

サンプルリクエスト

{
  "policy": {
    "name": "some_policy",
    "description": "written about the policy"
  }
}

サンプルレスポンス

Status: 200 OK

{
  "id": 67,
  "account_id": 123,
  "name": "some_policy",
  "description": "written about the policy",
  "user_count": 3
}

DELETE /v3/access_control/policies/:policy_id

ポリシーを削除します。

HTTPメソッドリソース説明
DELETE/v3/access_control/policies/:policy_id特定のポリシーを削除

URIパラメータ

パラメータ名必須説明
policy_idYesIntegerAccessControlPolicyId 例: 67

サンプルレスポンス

{
  "id": 67,
  "account_id": 123,
  "name": "some_policy",
  "description": "written about the policy",
  "user_count": 3
}

GET /v3/access_control/users/:user_id/policies

ユーザーごとのポリシーを一覧表示します。

HTTPメソッドリソース説明
GET/v3/access_control/users/:user_id/policiesユーザーごとのポリシー一覧を取得

URIパラメータ

パラメータ名必須説明
user_idYesintegerUserId 例: 123

サンプルレスポンス

Status: 200 OK

[
  {
    "id": 67,
    "account_id": 123,
    "name": "some_policy",
    "description": "written about the policy",
    "user_count": 3
  }
]

PATCH /v3/access_control/users/:user_id/policies

ユーザーのポリシーを更新します。

HTTPメソッドリソース説明
PATCH/v3/access_control/users/:user_id/policiesユーザーのポリシーを更新

URIパラメータ

パラメータ名必須説明
user_idYesintegerUserId 例: 123

リクエストボディ

プロパティ名説明
policy_idsarray of stringポリシーのリスト

サンプルリクエスト

{
  "policy_ids": [
    "1",
    "2",
    "42"
  ]
}

サンプルレスポンス

Status: 200 OK

[
  {
    "id": 67,
    "account_id": 123,
    "name": "some_policy",
    "description": "written about the policy",
    "user_count": 3
  }
]

POST /v3/access_control/users/:user_id/policies/:policy_id

ポリシーをユーザーにアタッチします。

HTTPメソッドリソース説明
POST/v3/access_control/users/:user_id/policies/:policy_idポリシーをユーザーにアタッチ

URIパラメータ

パラメータ名必須説明
user_idYesintegerUserId 例: 123
policy_idYesinteger例: 67

サンプルレスポンス

Status: 200 OK

{
  "id": 67,
  "account_id": 123,
  "name": "some_policy",
  "description": "written about the policy",
  "user_count": 3
}

DELETE /v3/access_control/users/:user_id/policies/:policy_id

ユーザーのポリシーを削除します。

HTTPメソッドリソース説明
DELETE/v3/access_control/users/:user_id/policies/:policy_idユーザーのポリシーを削除

URIパラメータ

パラメータ名必須説明
user_idYesintegerUserId 例: 123
policy_idYesinteger例: 67

サンプルレスポンス

{
  "id": 67,
  "account_id": 123,
  "name": "some_policy",
  "description": "written about the policy",
  "user_count": 3
}

POST /v3/access_control/policies/:policy_id/users/:user_id

ユーザーを特定のポリシーにアタッチします。

HTTPメソッドリソース説明
POST/v3/access_control/policies/:policy_id/users/:user_idユーザーをポリシーにアタッチ

URIパラメータ

パラメータ名必須説明
policy_idYesintegerAccessControlPolicyId 例: 67
user_idYesIntegerUserid 例: 123

サンプルレスポンス

Status: 200 OK

{
  "id": 67,
  "account_id": 123,
  "name": "some_policy",
  "description": "written about the policy",
  "user_count": 3
}

DELETE /v3/access_control/policies/:policy_id/users/:user_id

ユーザーを特定のポリシーからデタッチします。

HTTPメソッドリソース説明
DELETE/v3/access_control/policies/:policy_id/users/:user_idユーザーをポリシーから削除

URIパラメータ

パラメータ名必須説明
policy_idYesintegerAccessControlPolicyId 例: 67
user_idYesIntegerUserid 例: 123

サンプルレスポンス

Status: 200 OK

{
  "id": 67,
  "account_id": 123,
  "name": "some_policy",
  "description": "written about the policy",
  "user_count": 3
}

GET /v3/access_control/permissions

すべてのパーミッションを一覧表示します。

HTTPメソッドリソース説明
GET/v3/access_control/permissionsすべてのパーミッションを一覧表示

サンプルレスポンス

Status: 200 OK

[
  {
    "id": 0,
    "permission_set_id": 0,
    "resource_type": "string",
    "filter_expression": "string",
    "filter_operator": "string",
    "filter_value": "string",
    "can_create": true,
    "can_read": true,
    "can_update": true,
    "can_delete": true,
    "can_execute": true,
    "custom_operation": "string"
  }
]

GET /v3/access_control/policies/:policy_id/permissions

特定のポリシーのパーミッションを一覧表示します。

HTTPメソッドリソース説明
GET/v3/access_control/policies/:policy_id/permissionsポリシーのパーミッションを一覧表示
パラメータ名必須説明
policy_idYesintegerAccessControlPolicyId 例: 67

サンプルレスポンス

Status: 200 OK

{
  "WorkflowProject": [
    {
      "operation": "view"
    }
  ],
  "WorkflowProjectLevel": [
    {
      "operation": "view",
      "name": "my_wf"
    }
  ],
  "Segmentation": [
    {
      "operation": "full"
    }
  ],
  "MasterSegmentConfigs": [
    {
      "operation": "view"
    }
  ],
  "MasterSegmentConfig": [
    {
      "operation": "view",
      "id": "42"
    }
  ],
  "SegmentAllFolders": [
    {
      "operation": "view",
      "audience_id": "42"
    }
  ],
  "SegmentFolder": [
    {
      "operation": "view",
      "id": "42"
    }
  ],
  "Authentications": [
    {
      "operation": "use"
    }
  ],
  "Sources": [
    {
      "operation": "restricted"
    }
  ],
  "Destinations": [
    {
      "operation": "restricted"
    }
  ]
}

PATCH /v3/access_control/policies/:policy_id/permissions

特定のポリシーのパーミッションを更新します。

HTTPメソッドリソース説明
PATCH/v3/access_control/policies/:policy_id/permissionポリシーのパーミッションを更新

URIパラメータ

パラメータ名必須説明
policy_idYesintegerAccessControlPolicyId 例: 67

利用可能なリクエストボディフィールド

パラメータ名説明
WorkflowProjectArray of objectすべてのワークフローに対する "view"、"run"、または "edit" アクセスを指定します。例:operation (string)enum: "view" "run" "edit"name (string)
WorkflowProjectLevelArray of object特定のワークフロープロジェクトに対する "view"、"run"、または "edit" アクセスを指定します。例:operation (string)enum: "view" "run" "edit"name (string)
SegmentationArray of objectすべてのセグメンテーションに対する "full" アクセスを付与します。例:operation (string)value: "full"
MasterSegmentConfigsArray of objectすべてのマスターセグメント設定に対する "view" または "edit" アクセス、またはすべてのCDP生成ワークフローに対する "full" アクセスを付与します。例:operation (string)enum: "view" "edit"
MasterSegmentConfigArray of object特定のマスターセグメント設定に対する "view" または "edit" アクセス、または特定のCDP生成ワークフローに対する "full" アクセスを付与します。例:operation (string)enum: "view" "edit"id (string)
MasterSegmentColumnArray of objectマスターセグメントカラムに対するパーミッションを付与します。例: operations (string)enum: "view_clear" "view_non_pii" "view_pii" "blocked"
MasterSegmentAllColumnsArray of objectマスターセグメントのすべてのカラムに対するパーミッションを付与します。例: operations (string)enum: "view_clear" "view_non_pii" "view_pii" "blocked_only_for_migration_purpose"
SegmentAllFoldersArray of objectすべてのセグメントフォルダに対する "view" または "edit" アクセスを付与します。例:operation (string)enum: "view" "edit"audience_id (string)
SegmentFolderArray of object特定のセグメントフォルダに対する "view" または "edit" アクセスを付与します。例:operation (string)enum: "view" "edit"id (string)
DatabasesArray of objectすべてのデータベースに対する "manage" アクセスを付与します。所有データベースに対する "owner_manage" アクセスを付与します。"ids" を使用して特定のデータベースに対する "edit"、"query"、"import" アクセスを付与します。読み取り権限があるデータベースのダウンロードを許可する "download" を付与します。例:operation (string)enum: "manage" "owner_manage" "edit" "query" "import"ids: (string, operation が "edit" "query" "import" の場合必須)"1,2,3"
AuthenticationsArray of objectすべての認証に対する "use" または "full" アクセスを付与します。"use" は認証の表示権限を指定します。例: operation (string)
enum: "use" "full" "owner_manage" "use_limited" ## 順序は任意
ids (string, operation が "use_limited" の場合必須)
"1, 2, 3"
SourcesArray of objectすべてのソースに対する "restricted" アクセスを設定します。例: どの権限を持っているかを記述します(1つのタイプのみ選択可能)例:
operation (string)
enum: "restricted"
DestinationsArray of object結果エクスポート用のデスティネーション使用に対する "restricted" アクセスを付与します。例:
operation (string)
enum: "restricted"

サンプルリクエスト

{
    "Authentications": [
        {
            "operation": "full"
        }
    ],
    "Sources": [
        {
            "operation": "restricted"
        }
    ],
    "Destinations": [
        {
            "operation": "restricted"
        }
    ]
}

サンプルレスポンス

Status: 200 OK

{
    "Authentications": [
        {
            "operation": "full"
        }
    ],
    "Sources": [
        {
            "operation": "restricted"
        }
    ],
    "Destinations": [
        {
            "operation": "restricted"
        }
    ]
}

GET /v3/access_control/users

ユーザーとそのパーミッションの一覧を取得します。

HTTPメソッドリソース説明
GET/v3/access_control/usersユーザーとそのパーミッションの一覧を取得

サンプルレスポンス

Status: 200 OK

[
  {
    "user_id": 123,
    "account_id": 123,
    "permissions": {
      "WorkflowProject": [
        {
          "operation": "view"
        }
      ],
      "WorkflowProjectLevel": [
        {
          "operation": "view",
          "name": "my_wf"
        }
      ],
      "Segmentation": [
        {
          "operation": "full"
        }
      ],
      "MasterSegmentConfigs": [
        {
          "operation": "view"
        }
      ],
      "MasterSegmentConfig": [
        {
          "operation": "view",
          "id": "42"
        }
      ],
      "SegmentAllFolders": [
        {
          "operation": "view",
          "audience_id": "42"
        }
      ],
      "SegmentFolder": [
        {
          "operation": "view",
          "id": "42"
        }
      ],
      "Authentications": [
        {
          "operation": "use"
        }
      ],
      "Sources": [
        {
          "operation": "restricted"
        }
      ],
      "Destinations": [
        {
          "operation": "restricted"
        }
      ]
    },
    "policies": [
      {
        "id": 67,
        "account_id": 123,
        "name": "some_policy",
        "description": "written about the policy",
        "user_count": 3
      }
    ]
  }
]

GET /v3/access_control/users/:user_id

IDで特定のユーザーを取得します。

HTTPメソッドリソース説明
GET/v3/access_control/users/:user_idユーザーを取得

URIパラメータ

パラメータ名必須説明
policy_idYesintegerAccessControlPolicyId 例: 67

サンプルレスポンス

Status: 200 OK

{
  "user_id": 123,
  "account_id": 123,
  "permissions": {
    "WorkflowProject": [
      {
        "operation": "view"
      }
    ],
    "WorkflowProjectLevel": [
      {
        "operation": "view",
        "name": "my_wf"
      }
    ],
    "Segmentation": [
      {
        "operation": "full"
      }
    ],
    "MasterSegmentConfigs": [
      {
        "operation": "view"
      }
    ],
    "MasterSegmentConfig": [
      {
        "operation": "view",
        "id": "42"
      }
    ],
    "SegmentAllFolders": [
      {
        "operation": "view",
        "audience_id": "42"
      }
    ],
    "SegmentFolder": [
      {
        "operation": "view",
        "id": "42"
      }
    ],
    "Authentications": [
      {
        "operation": "use"
      }
    ],
    "Sources": [
      {
        "operation": "restricted"
      }
    ],
    "Destinations": [
      {
        "operation": "restricted"
      }
    ]
  },
  "policies": [
    {
      "id": 67,
      "account_id": 123,
      "name": "some_policy",
      "description": "written about the policy",
      "user_count": 3
    }
  ]
}

PATCH /v3/access_control/users/:user_id/permissions

特定のユーザーのパーミッションを更新します。

HTTPメソッドリソース説明
PATCH/v3/access_control/users/:user_id/permissionsパーミッションを更新

URIパラメータ

パラメータ名必須説明
user_idYesIntegerUserid 例: 123

リクエストボディ

プロパティ名説明
WorkflowProjectarray of object例:operation (string)enum:"view" "run" "edit"property name (any)
WorkflowProjectLevelarray of object例:operation (string)enum:"view" "run" "edit"name (string)property name (any)

サンプルリクエスト

{
  "WorkflowProject": [
    {
      "operation": "view"
    }
  ],
  "WorkflowProjectLevel": [
    {
      "operation": "view",
      "name": "my_wf"
    }
  ]
}

サンプルレスポンス

Status: 200 OK

{
  "user_id": 123,
  "permissions": {
    "WorkflowProject": [
      {
        "operation": "view"
      }
    ],
    "WorkflowProjectLevel": [
      {
        "operation": "view",
        "name": "my_wf"
      }
    ],
    "Segmentation": [
      {
        "operation": "full"
      }
    ],
    "MasterSegmentConfigs": [
      {
        "operation": "view"
      }
    ],
    "MasterSegmentConfig": [
      {
        "operation": "view",
        "id": "42"
      }
    ],
    "SegmentAllFolders": [
      {
        "operation": "view",
        "audience_id": "42"
      }
    ],
    "SegmentFolder": [
      {
        "operation": "view",
        "id": "42"
      }
    ],
    "Authentications": [
      {
        "operation": "use"
      }
    ],
    "Sources": [
      {
        "operation": "restricted"
      }
    ],
    "Destinations": [
      {
        "operation": "restricted"
      }
    ]
  }
}

GET /v3/access_control/policies/:policy_id/users

特定のポリシーに関連付けられたユーザーの一覧を取得します。

HTTPメソッドリソース説明
GET/v3/access_control/policies/:policy_id/usersポリシーのユーザー一覧を取得

URIパラメータ

パラメータ名必須説明
policy_idYesintegerAccessControlPolicyId 例: 67

サンプルレスポンス

Status: 200 OK

[
  {
    "user_id": 123,
    "account_id": 123,
    "email": "jake@gmail.com",
    "name": "Jake Becker"
  }
]

PATCH /v3/access_control/policies/:policy_id/users

特定のポリシーに関連付けられたユーザーの一覧を更新します。

HTTPメソッドリソース説明
PATCH/v3/access_control/policies/:policy_id/usersポリシーに関連付けられたユーザー一覧を更新

URIパラメータ

パラメータ名必須説明
policy_idYesintegerAccessControlPolicyId 例: 67

リクエストボディ

プロパティ名説明
user_idsarray of integerユーザーIDのリスト

サンプルリクエスト

{
  "user_ids": [
    123
  ]
}

サンプルレスポンス

Status: 200 OK

[
  {
    "user_id": 123,
    "account_id": 123,
    "permissions": {
      "WorkflowProject": [
        {
          "operation": "view"
        }
      ],
      "WorkflowProjectLevel": [
        {
          "operation": "view",
          "name": "my_wf"
        }
      ],
      "Segmentation": [
        {
          "operation": "full"
        }
      ],
      "MasterSegmentConfigs": [
        {
          "operation": "view"
        }
      ],
      "MasterSegmentConfig": [
        {
          "operation": "view",
          "id": "42"
        }
      ],
      "SegmentAllFolders": [
        {
          "operation": "view",
          "audience_id": "42"
        }
      ],
      "SegmentFolder": [
        {
          "operation": "view",
          "id": "42"
        }
      ],
      "Authentications": [
        {
          "operation": "use"
        }
      ],
      "Sources": [
        {
          "operation": "restricted"
        }
      ],
      "Destinations": [
        {
          "operation": "restricted"
        }
      ]
    },
    "policies": [
      {
        "id": 67,
        "account_id": 123,
        "name": "some_policy",
        "description": "written about the policy",
        "user_count": 3
      }
    ]
  }
]

GET /v3/access_control/policies/{policy_id}/column_permissions

カラムレベルのパーミッションを含むポリシーに関する情報を取得します。

HTTPメソッドリソース説明
GET/access_control/policies/{policy_id}/column_permissionsカラムレベルのパーミッションを含むポリシーに関する情報を取得

URIパラメータ

パラメータ名必須説明
policy_idYesintegerAccessControlPolicyId 例: 67

サンプルレスポンス

{
  "tags": [
    "string"
  ],
  "except": true,
  "masking" : "hash"
}

GET /v3/access_control/policies?column_permissions_tag={tag}

カラムタグを含むすべてのポリシーを取得します。

HTTPメソッドリソース説明
GET/v3/access_control/policies?column_permission_tag={tag}カラムタグを含むすべてのポリシーを取得

サンプルレスポンス

[
  {
    "id": 67,
    "account_id": 123,
    "name": "some_policy",
    "description": "written about the policy",
    "user_count": 3
  }
]

PATCH /v3/access_control/policies/{policy_id}/column_permissions

カラムレベルのアクセス制御ポリシーに関する情報を更新します。

制御タイプ説明
Allow"xxx, yyy, zzz" タグでアクセスを許可するポリシー
Allow - Except"aaa, bbb, ccc" タグを除くすべてのカラムへのアクセスを許可するポリシー
Mask変更されたコンテンツを使用して指定されたカラムを非表示にするポリシー

ALLOW

HTTPメソッドリソース説明
PATCH/v3/access_control/policies/:policy_id/column_permissions特定のタグへのアクセスを許可するように特定のポリシーを更新

URIパラメータ

パラメータ名必須説明
policy_idYesintegerpolicy_id 例: 6196842

サンプルリクエスト

curl -X PATCH \
     -H "Authorization: TD1 ${TD1_KEY}" \
     -H "Content-Type: application/json" \
     -d '{"column_permissions":[ {"tags":["home-address"]} ]}'

サンプルレスポンス

[
  {
    "tags": [
      "home-address"
    ]
  }
]

ALLOW Except

HTTPメソッドリソース説明
PATCH/v3/access_control/policies/:policy_id/column_permissions特定のタグへのアクセスを許可するように特定のポリシーを更新

URIパラメータ

パラメータ名必須説明
policy_idYesintegerpolicy_id 例: 6196842

サンプルリクエスト

curl -X PATCH \
     -H "Authorization: TD1 ${TD1_KEY}" \
     -H "Content-Type: application/json" \
     -d '{"column_permissions":[ {"tags":["email-raw"], "except":true} ]}'

サンプルレスポンス

[
  {
    "tags": [
      "email-raw"
    ],
    "except": true
  }
]

MASKING

HTTPメソッドリソース説明
PATCH/v3/access_control/policies/:policy_id/column_permissions特定のタグへのアクセスを許可するように特定のポリシーを更新

URIパラメータ

パラメータ名必須説明
policy_idYesintegerpolicy_id 例: 6196842

サンプルリクエスト

curl -X PATCH \
     -H "Authorization: TD1 ${TD1_KEY}" \
     -H "Content-Type: application/json" \
     -d '{"column_permissions":[ {"tags":["home-address"], "masking":"hash"} ]}'

サンプルレスポンス

[
  {
    "tags": [
      "home-address"
    ],
    "masking": "hash"
  }
]