サポート対象のリソーススキーマ
セキュリティセンターは、MaxCompute、EMR_ON_ECS_HIVE、SEVERLESS_STARROCKS、HOLOGRES、DATAWORKS_ENTITY、DLF_V1、DLF_NEXT、LINDORM などの一般的なリソースタイプ向けに、組み込みのリソーススキーマを提供します。
承認方法の設定
各 リソーススキーマには、リソースタイプがサポートする承認方法を定義する authMethods フィールドが含まれています。
{
"authMethods": [
{
"name": "default",
"displayName": "ネイティブ承認",
"isDefault": true
}
]
}
規則:
デフォルトでは、すべての組み込みリソーススキーマに、少なくとも
defaultの承認方法が含まれています。defaultはリソースタイプのネイティブ承認方法を表し、システムがdefSchemaに基づいて特定のPermissionGrantServiceにマッピングします。authMethodを指定しないか、defaultを渡した場合、システムは自動的にネイティブ承認方法を使用します。
承認方法とリソースタイプのマッピング:
リソースタイプ | デフォルトマッピング | その他の承認方法 | 説明 |
SEVERLESS_STARROCKS | ranger | starrocksManager | これは、現在複数の承認方法をサポートする唯一のリソースタイプです。デフォルトでは Ranger 承認が使用され、StarRocks Manager は代替手段です。 |
HOLOGRES | hologres | - | ネイティブ承認のみをサポートします。 |
DLF_V1 | dlfV1 | - | DLF 1.0 承認のみをサポートします。 |
EMR_ON_ECS_HIVE | ranger | - | Ranger 承認のみをサポートします。 |
LINDORM | ranger | - | Ranger 承認のみをサポートします。 |
DATAWORKS_ENTITY | default | - | デフォルトの承認のみをサポートします。 |
MaxCompute | default | 承認はサポートされていません | MaxCompute には独立した権限システムがあります。 |
DLF_NEXT | default | 承認はサポートされていません | DLF 3.0 には独立した権限システムがあります。 |
MaxCompute
{
"name": "MaxCompute",
"displayName": "MaxCompute Resource",
"version": "v1.0.0",
"authPrincipal": [
"RAM_USER",
"RAM_ROLE"
],
"authMethods": [],
"resources": [
{
"level": 0,
"name": "tenant",
"type": "string",
"label": "DATAWORKS_TENANT_ID",
"parent": "",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 1,
"name": "workspace",
"type": "string",
"label": "DATAWORKS_WORKSPACE_ID",
"parent": "tenant",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [
"workspaceId",
"workspaceName",
"ownerBaseId"
],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 2,
"name": "project",
"type": "string",
"label": "PROJECT",
"parent": "workspace",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 3,
"name": "schema",
"type": "string",
"label": "SCHEMA",
"parent": "project",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 4,
"name": "table",
"type": "string",
"label": "TABLE",
"parent": "schema",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": true,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select",
"update",
"download",
"describe",
"alter",
"drop"
]
},
{
"level": 4,
"name": "resource",
"type": "string",
"label": "RESOURCE",
"parent": "schema",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"read",
"write",
"delete",
"all"
]
},
{
"level": 4,
"name": "udf",
"type": "string",
"label": "UDF",
"parent": "schema",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"read",
"write",
"delete",
"execute",
"all"
]
},
{
"level": 5,
"name": "column",
"type": "string",
"label": "COLUMN",
"parent": "table",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select",
"update",
"download"
]
}
]
}
EMR on ECS Hive
{
"name": "EMR_ON_ECS_HIVE",
"displayName": "EMR on ECS Hive Resource",
"version": "v1.0.0",
"authPrincipal": [
"RAM_USER"
],
"authMethods": [],
"resources": [
{
"level": 0,
"name": "tenant",
"type": "string",
"label": "DATAWORKS_TENANT_ID",
"parent": "",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 1,
"name": "instance",
"type": "string",
"label": "INSTANCE_ID",
"parent": "tenant",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [
"workspaceId",
"workspaceName",
"ownerBaseId"
],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 2,
"name": "database",
"type": "string",
"label": "DATABASE",
"parent": "instance",
"mandatory": true,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"create",
"update",
"alter",
"select"
]
},
{
"level": 3,
"name": "table",
"type": "string",
"label": "TABLE",
"parent": "database",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select",
"drop",
"update",
"alter",
"all"
]
}
]
}
Serverless StarRocks
{
"name": "SEVERLESS_STARROCKS",
"displayName": "Serverless StarRocks Resource",
"version": "v1.0.0",
"authPrincipal": [
"RAM_USER",
"RAM_ROLE"
],
"authMethods": [
{
"name": "ranger",
"displayName": "Ranger",
"isDefault": true
},
{
"name": "starrocksManager",
"displayName": "StarRocks Manager",
"isDefault": false
}
],
"resources": [
{
"level": 0,
"name": "tenant",
"type": "string",
"label": "DATAWORKS_TENANT_ID",
"parent": "",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 1,
"name": "instance",
"type": "string",
"label": "INSTANCE_ID",
"parent": "tenant",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 2,
"name": "internalCatalog",
"type": "string",
"label": "INTERNAL_CATALOG",
"parent": "instance",
"mandatory": false,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "usage", "create database", "drop", "alter"]
}
]
},
{
"level": 2,
"name": "hiveCatalog",
"type": "string",
"label": "EXTERNAL_HIVE_CATALOG",
"parent": "instance",
"mandatory": false,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "usage", "create database", "drop", "alter"]
}
]
},
{
"level": 3,
"name": "database",
"type": "string",
"label": "DATABASE",
"parent": "internalCatalog",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": true,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"create table",
"drop",
"alter",
"create view",
"create function",
"create materialized view"
],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "alter", "drop", "create table", "create view", "create function", "create materialized view", "create pipe"]
},
{
"authMethod": "ranger",
"accessTypes": ["create table", "drop", "alter", "create view", "create function", "create materialized view"]
}
]
},
{
"level": 3,
"name": "hiveDatabase",
"type": "string",
"label": "EXTERNAL_HIVE_DATABASE",
"parent": "hiveCatalog",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": true,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"create",
"update",
"alter",
"select"
],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "alter", "drop", "create table", "create view", "create function", "create materialized view", "create pipe"]
},
{
"authMethod": "ranger",
"accessTypes": ["create", "update", "alter", "select"]
}
]
},
{
"level": 4,
"name": "table",
"type": "string",
"label": "TABLE",
"parent": "database",
"mandatory": false,
"extendedInfo": {
"constraints": {
"enabled": true,
"supportedTypes": ["rowFilter"],
"maxConstraints": 1,
"definitions": {
"rowFilter": {
"description": "SQLのWHERE句である行フィルターです。",
"type": "string",
"required": false,
"example": "ID > 3 AND Name = 'test'",
"authMethods": ["ranger"],
"restrictedAccessTypes": ["select"]
}
}
}
},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"delete",
"drop",
"insert",
"select",
"alter",
"export",
"update"
],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "alter", "drop", "select", "insert", "update", "export", "delete"]
},
{
"authMethod": "ranger",
"accessTypes": ["delete", "drop", "insert", "select", "alter", "export", "update"]
}
]
},
{
"level": 4,
"name": "view",
"type": "string",
"label": "VIEW",
"parent": "database",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "select", "alter", "drop"]
}
]
},
{
"level": 4,
"name": "materializedView",
"type": "string",
"label": "MATERIALIZED_VIEW",
"parent": "database",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "select", "alter", "refresh", "drop"]
}
]
},
{
"level": 4,
"name": "hiveTable",
"type": "string",
"label": "EXTERNAL_HIVE_TABLE",
"parent": "hiveDatabase",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select"
],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "alter", "drop", "select", "insert", "update", "export", "delete"]
},
{
"authMethod": "ranger",
"accessTypes": ["select"]
}
]
},
{
"level": 4,
"name": "hiveView",
"type": "string",
"label": "EXTERNAL_HIVE_VIEW",
"parent": "hiveDatabase",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "select", "alter", "drop"]
}
]
},
{
"level": 4,
"name": "hiveMaterializedView",
"type": "string",
"label": "EXTERNAL_HIVE_MATERIALIZED_VIEW",
"parent": "hiveDatabase",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [],
"authMethodAccessTypes": [
{
"authMethod": "starrocksManager",
"accessTypes": ["all", "select", "alter", "refresh", "drop"]
}
]
}
]
}
StarRocks の承認方法の違い:
リソースレベル | ranger (デフォルト) | starrocksManager | 説明 |
internalCatalog | ❌ サポートされていません | ✅ サポートされています | Ranger はこれをリーフノードとして扱いません。 |
database | ✅ サポートされています | ✅ サポートされています | accessType の値が異なります。 |
table | ✅ サポートされています | ✅ サポートされています | Ranger は rowFilter 制約をサポートしています。 |
view | ❌ サポートされていません | ✅ サポートされています | StarRocks Manager のみがこれをサポートしています。 |
materializedView | ❌ サポートされていません | ✅ サポートされています | StarRocks Manager のみがこれをサポートしています。 |
hiveCatalog | ❌ サポートされていません | ✅ サポートされています | Ranger はこれをリーフノードとして扱いません。 |
hiveDatabase | ✅ サポートされています | ✅ サポートされています | accessType の値が異なります。 |
hiveTable | ✅ サポートされています ( | ✅ サポートされています | Ranger は |
hiveView | ❌ サポートされていません | ✅ サポートされています | StarRocks Manager のみがこれをサポートしています。 |
hiveMaterializedView | ❌ サポートされていません | ✅ サポートされています | StarRocks Manager のみがこれをサポートしています。 |
制約のサポート:
リソースレベル | 制約タイプ | サポート対象の承認方法 | アクセスタイプの制限 | 説明 |
table | rowFilter | ranger |
| SQL の WHERE 句である行フィルターです。 |
Hologres
{
"name": "HOLOGRES",
"displayName": "Hologres Resource",
"version": "v1.0.0",
"authPrincipal": [
"RAM_USER"
],
"authMethods": [
{
"name": "hologres",
"displayName": "Hologres",
"isDefault": true
}
],
"resources": [
{
"level": 0,
"name": "tenant",
"type": "string",
"label": "DATAWORKS_TENANT_ID",
"parent": "",
"mandatory": false,
"extendedInfo": {},
"enricherFields": [],
"recursiveSupported": false,
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 1,
"name": "instance",
"type": "string",
"label": "INSTANCE_ID",
"parent": "tenant",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 2,
"name": "database",
"type": "string",
"label": "DATABASE",
"parent": "instance",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 3,
"name": "schema",
"type": "string",
"label": "SCHEMA",
"parent": "database",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 4,
"name": "table",
"type": "string",
"label": "TABLE",
"parent": "schema",
"mandatory": true,
"extendedInfo": {},
"recursiveSupported": true,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select",
"insert",
"update",
"delete",
"truncate",
"all"
]
},
{
"level": 5,
"name": "column",
"type": "string",
"label": "COLUMN",
"parent": "table",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select",
"insert",
"update"
]
}
]
}
Hologres の列レベルの権限:
パラメーター | 説明 |
|
|
| テーブルのレベル 5 サブリソースです。 |
列レベルのアクセスタイプ |
|
DLF V1
{
"name": "DLF_V1",
"displayName": "DLF 1.0 Resource",
"version": "v1.0.0",
"authPrincipal": [
"RAM_USER",
"RAM_ROLE"
],
"authMethods": [],
"resources": [
{
"level": 0,
"name": "tenant",
"type": "string",
"label": "DATAWORKS_TENANT_ID",
"parent": "",
"mandatory": false,
"extendedInfo": {},
"enricherFields": [],
"recursiveSupported": false,
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 1,
"name": "catalog",
"type": "string",
"label": "CATALOG",
"parent": "tenant",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 2,
"name": "database",
"type": "string",
"label": "DATABASE",
"parent": "catalog",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"describe",
"alter",
"drop",
"createTable",
"createFunction",
"list"
]
},
{
"level": 3,
"name": "table",
"type": "string",
"label": "TABLE",
"parent": "database",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": true,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select",
"update",
"describe",
"alter",
"drop"
]
},
{
"level": 4,
"name": "column",
"type": "string",
"label": "COLUMN",
"parent": "table",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select"
]
}
]
}
DLF Next
{
"name": "DLF_NEXT",
"displayName": "DLF Next Resource",
"version": "v1.0.0",
"authPrincipal": [
"RAM_USER",
"RAM_ROLE",
"DLF_ROLE"
],
"authMethods": [],
"resources": [
{
"level": 0,
"name": "tenant",
"type": "string",
"label": "DATAWORKS_TENANT_ID",
"parent": "",
"mandatory": false,
"extendedInfo": {},
"enricherFields": [],
"recursiveSupported": false,
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 1,
"name": "catalog",
"type": "string",
"label": "CATALOG",
"parent": "tenant",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 2,
"name": "database",
"type": "string",
"label": "DATABASE",
"parent": "catalog",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"describe",
"list",
"alter",
"drop",
"createTable",
"createFunction",
"createView",
"grant",
"all"
]
},
{
"level": 3,
"name": "table",
"type": "string",
"label": "TABLE",
"parent": "database",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": true,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select",
"update",
"alter",
"drop",
"grant",
"all"
]
},
{
"level": 4,
"name": "column",
"type": "string",
"label": "COLUMN",
"parent": "table",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"select"
]
}
]
}
DATAWORKS_ENTITY
{
"name": "DATAWORKS_ENTITY",
"displayName": "DataWorks Entity",
"version": "v1.0.0",
"authPrincipal": [
"RAM_USER",
"RAM_ROLE",
"DATAWORKS_WORKSPACE_ROLE",
"DATAWORKS_WORKSPACE_MEMBER"
],
"authMethods": [],
"resources": [
{
"level": 0,
"name": "tenant",
"type": "string",
"label": "DATAWORKS_TENANT_ID",
"parent": "",
"mandatory": false,
"extendedInfo": {},
"enricherFields": [],
"recursiveSupported": false,
"isValidLeaf": false,
"accessTypeRestrictions": []
},{
"level": 1,
"name": "tenantRole",
"type": "string",
"label": "DATAWORKS_TENANT_ROLE_CODE",
"parent": "tenant",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [
"roleName"
],
"isValidLeaf": true,
"accessTypeRestrictions": [
"joinIn"
],
"authPrincipalRestrictions": [
"RAM_USER",
"RAM_ROLE"
]
},
{
"level": 1,
"name": "workspace",
"type": "string",
"label": "DATAWORKS_WORKSPACE_ID",
"parent": "tenant",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [
"workspaceId",
"workspaceName",
"ownerBaseId"
],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 2,
"name": "workspaceRole",
"type": "string",
"label": "DATAWORKS_WORKSPACE_ROLE_CODE",
"parent": "workspace",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"joinIn"
],
"authPrincipalRestrictions": [
"RAM_USER",
"RAM_ROLE"
]
}
]
}
Lindorm
{
"name": "LINDORM",
"displayName": "Lindorm",
"version": "v1.0.0",
"authPrincipal": [
"RAM_USER"
],
"authMethods": [],
"resources": [
{
"level": 0,
"name": "tenant",
"type": "string",
"label": "DATAWORKS_TENANT_ID",
"parent": "",
"mandatory": false,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 1,
"name": "instance",
"type": "string",
"label": "INSTANCE_ID",
"parent": "tenant",
"mandatory": true,
"extendedInfo": {},
"enricherFields": [
"instanceName"
],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 2,
"name": "database",
"type": "string",
"label": "DATABASE",
"parent": "instance",
"mandatory": true,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": false,
"accessTypeRestrictions": []
},
{
"level": 3,
"name": "table",
"type": "string",
"label": "TABLE",
"parent": "database",
"mandatory": true,
"extendedInfo": {},
"recursiveSupported": false,
"enricherFields": [],
"isValidLeaf": true,
"accessTypeRestrictions": [
"write",
"read",
"admin",
"trash",
"all"
]
}
]
}