blob: f064e163aa2509fc77d34204172d041729cadce6 [file] [log] [blame]
{
"serviceName":"hivedev",
"serviceDef":{
"name":"hive",
"id":3,
"resources":[
{"name":"database","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":{"wildCard":true, "ignoreCase":true},"label":"Hive Database","description":"Hive Database"},
{"name":"url","level":1,"mandatory":true,"lookupSupported":false,"recursiveSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerURLResourceMatcher","matcherOptions":{"wildCard":true, "ignoreCase":true},"label":"URL","description":"URL"},
{"name":"hiveservice","level":1,"mandatory":true,"lookupSupported":false,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":{"wildCard":true, "ignoreCase":true},"label":"HiveService","description":"HiveService"},
{"name":"table","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":{"wildCard":true, "ignoreCase":true},"label":"Hive Table","description":"Hive Table"},
{"name":"udf","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":{"wildCard":true, "ignoreCase":true},"label":"Hive UDF","description":"Hive UDF"},
{"name":"column","level":3,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":{"wildCard":true, "ignoreCase":true},"label":"Hive Column","description":"Hive Column"}
],
"accessTypes":[
{"name":"select","label":"Select"},
{"name":"update","label":"Update"},
{"name":"create","label":"Create"},
{"name":"drop","label":"Drop"},
{"name":"alter","label":"Alter"},
{"name":"index","label":"Index"},
{"name":"lock","label":"Lock"},
{"name":"read","label":"Read"},
{"name":"write","label":"Write"},
{"name":"repladmin","label":"ReplAdmin"},
{"name":"serviceadmin","label":"ServiceAdmin"},
{"name":"all","label":"All",
"impliedGrants": [
"select",
"update",
"create",
"drop",
"alter",
"index",
"lock",
"read",
"write",
"repladmin",
"serviceadmin"
]
}
]
},
"policies":[
{"id":200,"name":"url=s3a://qe-s3-bucket-mst/test_abcd/abcd; s3a://qe-s3-bucket-mst/demo/*: URL-access-policy","isEnabled":true,"isAuditEnabled":true,
"resources":{"url":{"values": ["s3a://qe-s3-bucket-mst/test_abcd/abcd", "s3a://qe-s3-bucket-mst/demo"], "isRecursive":true}},
"policyItems":[
{"accesses":[{"type":"read","isAllowed":true},{"type":"write","isAllowed":true}],"users":[],"groups":["public"],"delegateAdmin":false}
]
}
,
{"id":1,"name":"db=default: audit-all-access","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["default"]},"table":{"values":["*"]},"column":{"values":["*"]}},
"policyItems":[
{"accesses":[],"users":[],"groups":["public"],"delegateAdmin":false}
]
}
,
{"id":2,"name":"db=default; table=test*; column=*","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["default"]},"table":{"values":["test*"]},"column":{"values":["*"]}},
"policyItems":[
{"accesses":[{"type":"select","isAllowed":true}],"users":["user1","user2"],"groups":["group1","group2"],"delegateAdmin":false}
,
{"accesses":[{"type":"create","isAllowed":true},{"type":"drop","isAllowed":true}],"users":["admin"],"groups":["admin"],"delegateAdmin":true}
]
}
,
{"id":3,"name":"db=db1; table=tbl*; column=*","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["db1"]},"table":{"values":["tbl*"]},"column":{"values":["*"]}},
"policyItems":[
{"accesses":[{"type":"select","isAllowed":true}],"users":["user1","user2"],"groups":["group1","group2"],"delegateAdmin":false}
]
}
,
{"id":4,"name":"db=db1; table=tmp; column=tmp*","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["db1"]},"table":{"values":["tmp"]},"column":{"values":["tmp*"], "isExcludes":true}},
"policyItems":[
{"accesses":[{"type":"select","isAllowed":true}],"users":["user1","user2"],"groups":["group1","group2"],"delegateAdmin":false}
]
}
,
{"id":5,"name":"hiveservice=*","isEnabled":true,"isAuditEnabled":true,
"resources":{"hiveservice":{"values":["*"]}},
"policyItems":[
{"accesses":[{"type":"serviceadmin","isAllowed":true}],"users":["user1"],"groups":[],"delegateAdmin":false}
]
}
,
{"id":6,"name":"db=demo1,demo2","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["demo1", "demo2"]}},
"policyItems":[
{"accesses":[{"type":"select","isAllowed":true}],"users":["user1","user2"],"groups":["group1","group2"],"delegateAdmin":false}
]
}
,
{"id":7,"name":"db=demo1; table=demo1_tbl1,demo1_tbl2; column=*","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["demo1"]},"table":{"values":["demo1_tbl1", "demo1_tbl2"]},"column":{"values":["*"]}},
"policyItems":[
{"accesses":[{"type":"create","isAllowed":true}],"users":["user1","user2"],"groups":["group1","group2"],"delegateAdmin":false}
]
},
{"id":8,"name":"db=dummy; table=*; column=*","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["dummy"]},"table":{"values":["*"]},"column":{"values":["*"]}},
"policyItems":[
{"accesses":[{"type":"create","isAllowed":true},{"type":"update","isAllowed":true},{"type":"drop","isAllowed":true}],"users":["user1","user2"],"groups":[],"delegateAdmin":false}
],
"allowExceptions":[
{"accesses":[{"type":"create","isAllowed":true}, {"type":"update","isAllowed":true}],"users":["user1"],"groups":[],"delegateAdmin":false},
{"accesses":[{"type":"create","isAllowed":true}, {"type":"update","isAllowed":true},{"type":"drop","isAllowed":true}],"users":["user2"],"groups":[],"delegateAdmin":false}
]
}
,
{"id":9,"name":"db=db1","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["db1"]}},
"isDenyAllElse": true,
"policyItems":[
{"accesses":[{"type":"select","isAllowed":true}],"users":["user1","user3","user4"],"groups":["group1","group2"],"delegateAdmin":false}
]
},
{"id":201,"name":"url=http://qe-s3-bucket-mst/test_abcd/abcd/ URL-access-policy","isEnabled":true,"isAuditEnabled":true,
"resources":{"url":{"values": ["http://qe-s3-bucket-mst/test_abcd/abcd/"], "isRecursive":true}},
"policyItems":[
{"accesses":[{"type":"read","isAllowed":true},{"type":"write","isAllowed":true}],"users":["user1"],"groups":[],"delegateAdmin":false}
]
},
{"id":1001,"name":"db=org; table=employee; column=*","isEnabled":true,"isAuditEnabled":true,
"resources":{"database":{"values":["org"]},"table":{"values":["employee"]},"column":{"values":["*"], "isExcludes":false}},
"policyItems":[
{"accesses":[{"type":"select","isAllowed":true}, {"type":"create","isAllowed":true}, {"type":"read","isAllowed":true}],"users":["john"],"groups":[],"delegateAdmin":false}
]
}
],
"tests":[
{"name":"DENY 'create or write for org;' for john",
"request":{
"resource":{"elements":{"database":"org"}},
"accessType":"create","user":"john","userGroups":[],"requestData":"create org",
"context": {"ISANYACCESS":true, "ACCESSTYPES": [ "create", "write" ]}
},
"result":{"isAudited":false,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'create and write for org;' for john",
"request":{
"resource":{"elements":{"database":"org"}},
"accessType":"create","user":"john","userGroups":[],"requestData":"create org",
"context": {"ISANYACCESS":false, "ACCESSTYPES": [ "create", "write" ]}
},
"result":{"isAudited":false,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW 'any' for org;' for john",
"request":{
"resource":{"elements":{"database":"org"}},
"accessType":"","user":"john","userGroups":[],"requestData":"'any' access for org"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":1001}
}
,
{"name":"ALLOW 'read http://qe-s3-bucket-mst/test_abcd/abcd;' for user1",
"request":{
"resource":{"elements":{"url":["http://qe-s3-bucket-mst/test_abcd/abcd", "http://qe-s3-bucket-mst/test_abcd/abcd/"]}},
"accessType":"read","user":"user1","userGroups":["users"],"requestData":"read http://qe-s3-bucket-mst/test_abcd/abcd for user1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":201}
}
,
{"name":"ALLOW '_any access to no-database' for user5: match when request has less levels than policy",
"request":{
"resource":{"elements":{}},
"accessType":"","user":"user5","userGroups":["users"],"requestData":"show databases"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":200}
}
,
{"name":"ALLOW '_any access to db1' for user5: match when request has less levels than policy",
"request":{
"resource":{"elements":{"database":"db1"}},
"accessType":"","user":"user5","userGroups":["users"],"requestData":"use db1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":9}
}
,
{"name":"DENY '_any access to db1' for user5: match when request has less levels than policy",
"request":{
"resource":{"elements":{"database":"db1"}},
"accessType":"","user":"user5","userGroups":["users"],"requestData":"use db1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":9}
}
,
{"name":"ALLOW 'any dummy/*/*;' for user1",
"request":{
"resource":{"elements":{"database":"dummy", "table": "dummy", "column": "dummy"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"any dummy/dummy/dummy for user1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":8}
}
,
{"name":"DENY 'any dummy/*/*;' for user2",
"request":{
"resource":{"elements":{"database":"dummy", "table": "dummy", "column": "dummy"}},
"accessType":"","user":"user2","userGroups":["users"],"requestData":"any dummy/dummy/dummy for user2"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW 'read s3a://qe-s3-bucket-mst/demo;' for user1",
"request":{
"resource":{"elements":{"url":"s3a://qe-s3-bucket-mst/demo"}},
"accessType":"read","user":"user1","userGroups":["users"],"requestData":"read s3a://qe-s3-bucket-mst/demo for user1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":200}
}
,
{"name":"ALLOW 'read s3a://qe-s3-bucket-mst/test_abcd/abcd;' for user1",
"request":{
"resource":{"elements":{"url":"s3a://qe-s3-bucket-mst/test_abcd/abcd"}},
"accessType":"read","user":"user1","userGroups":["users"],"requestData":"read s3a://qe-s3-bucket-mst/test_abcd/abcd for user1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":200}
}
,
{"name":"ALLOW 'read s3a://qe-s3-bucket-mst/test_abcd/abcd/non-existent;' for user1",
"request":{
"resource":{"elements":{"url":"s3a://qe-s3-bucket-mst/test_abcd/abcd/non-existent"}},
"accessType":"read","user":"user1","userGroups":["users"],"requestData":"read s3a://qe-s3-bucket-mst/test_abcd/abcd/non-existent for user1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":200}
}
,
{"name":"DENY 'select tmp_1 from db1.tmp ;' for user1",
"request":{
"resource":{"elements":{"database":"db1", "table":"tmp", "column":"tmp_1"}},
"accessType":"select","user":"user1","userGroups":["users"],"requestData":"select tmp_1 from db1.tmp for user1"
,"remoteIPAddress":"1.1.1.1","forwardedAddresses":["127.0.0.1","10.10.10.10"]
},
"result":{"isAudited":false,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW 'select abc_1 from db1.tmp ;' for user1",
"request":{
"resource":{"elements":{"database":"db1", "table":"tmp", "column":"abc_1"}},
"accessType":"select","user":"user1","userGroups":["users"],"requestData":"select abc_1 from db1.tmp for user1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":4}
}
,
{"name":"ALLOW 'use default;' for user1",
"request":{
"resource":{"elements":{"database":"default"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"use default"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"ALLOW 'use default;' for user2",
"request":{
"resource":{"elements":{"database":"default"}},
"accessType":"","user":"user2","userGroups":["users"],"requestData":"use default"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"DENY 'use default;' to user3",
"request":{
"resource":{"elements":{"database":"default"}},
"accessType":"","user":"user3","userGroups":["users"],"requestData":"use default"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW 'use default;' to group1",
"request":{
"resource":{"elements":{"database":"default"}},
"accessType":"","user":"user3","userGroups":["users", "group1"],"requestData":"use default"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"ALLOW 'use default;' to group2",
"request":{
"resource":{"elements":{"database":"default"}},
"accessType":"","user":"user3","userGroups":["users", "group2"],"requestData":"use default"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"DENY 'use default;' to user3/group3",
"request":{
"resource":{"elements":{"database":"default"}},
"accessType":"","user":"user3","userGroups":["users", "group3"],"requestData":"use default"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'use finance;' to user3/group3",
"request":{
"resource":{"elements":{"database":"finance"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"use finance"
},
"result":{"isAudited":false,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW 'select col1 from default.testtable;' to user1",
"request":{
"resource":{"elements":{"database":"default","table":"testtable","column":"col1"}},
"accessType":"select","user":"user1","userGroups":["users"],"requestData":"select col1 from default.testtable"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"ALLOW 'select col1 from default.testtable;' to user2",
"request":{
"resource":{"elements":{"database":"default","table":"testtable","column":"col1"}},
"accessType":"select","user":"user2","userGroups":["users"],"requestData":"select col1 from default.testtable"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"DENY 'select col1 from default.testtable;' to user3",
"request":{
"resource":{"elements":{"database":"default","table":"testtable","column":"col1"}},
"accessType":"select","user":"user3","userGroups":["users"],"requestData":"select col1 from default.testtable"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW 'select col1 from default.testtable;' to group1",
"request":{
"resource":{"elements":{"database":"default","table":"testtable","column":"col1"}},
"accessType":"select","user":"user3","userGroups":["users","group1"],"requestData":"select col1 from default.testtable"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"ALLOW 'select col1 from default.testtable;' to group2",
"request":{
"resource":{"elements":{"database":"default","table":"testtable","column":"col1"}},
"accessType":"select","user":"user3","userGroups":["users","group2"],"requestData":"select col1 from default.testtable"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"DENY 'select col1 from default.testtable;' to user3/group3",
"request":{
"resource":{"elements":{"database":"default","table":"testtable","column":"col1"}},
"accessType":"select","user":"user3","userGroups":["users","group3"],"requestData":"select col1 from default.testtable"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'select col1 from default.table1;' to user1",
"request":{
"resource":{"elements":{"database":"default","table":"table1","column":"col1"}},
"accessType":"select","user":"user1","userGroups":["users"],"requestData":"select col1 from default.table1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'create table default.testtable1;' to user1",
"request":{
"resource":{"elements":{"database":"default","table":"testtable1"}},
"accessType":"create","user":"user1","userGroups":["users"],"requestData":"create table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'create table default.testtable1;' to user1/group1",
"request":{
"resource":{"elements":{"database":"default","table":"testtable1"}},
"accessType":"create","user":"user1","userGroups":["users","group1"],"requestData":"create table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW 'create table default.testtable1;' to admin",
"request":{
"resource":{"elements":{"database":"default","table":"testtable1"}},
"accessType":"create","user":"admin","userGroups":["users"],"requestData":"create table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"ALLOW 'create table default.testtable1;' to user1/admin",
"request":{
"resource":{"elements":{"database":"default","table":"testtable1"}},
"accessType":"create","user":"user1","userGroups":["users","admin"],"requestData":"create table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"DENY 'drop table default.testtable1;' to user1",
"request":{
"resource":{"elements":{"database":"default","table":"testtable1"}},
"accessType":"drop","user":"user1","userGroups":["users"],"requestData":"drop table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'drop table default.testtable1;' to user1/group1",
"request":{
"resource":{"elements":{"database":"default","table":"testtable1"}},
"accessType":"drop","user":"user1","userGroups":["users","group1"],"requestData":"drop table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW 'drop table default.testtable1;' to admin",
"request":{
"resource":{"elements":{"database":"default","table":"testtable1"}},
"accessType":"drop","user":"admin","userGroups":["users"],"requestData":"drop table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"ALLOW 'drop table default.testtable1;' to user1/admin",
"request":{
"resource":{"elements":{"database":"default","table":"testtable1"}},
"accessType":"drop","user":"user1","userGroups":["users","admin"],"requestData":"drop table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":2}
}
,
{"name":"DENY 'create table default.table1;' to user1",
"request":{
"resource":{"elements":{"database":"default","table":"table1"}},
"accessType":"create","user":"user1","userGroups":["users"],"requestData":"create table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'create table default.table1;' to user1/admin",
"request":{
"resource":{"elements":{"database":"default","table":"table1"}},
"accessType":"create","user":"user1","userGroups":["users","admin"],"requestData":"create table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'drop table default.table1;' to user1",
"request":{
"resource":{"elements":{"database":"default","table":"table1"}},
"accessType":"drop","user":"user1","userGroups":["users"],"requestData":"drop table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'drop table default.table1;' to user1/admin",
"request":{
"resource":{"elements":{"database":"default","table":"table1"}},
"accessType":"drop","user":"user1","userGroups":["users","admin"],"requestData":"drop table default.testtable1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY 'select col1 from default.table1;' to user3",
"request":{
"resource":{"elements":{"database":"default","table":"table1","column":"col1"}},
"accessType":"select","user":"user3","userGroups":["users"],"requestData":"select col1 from default.table1"
},
"result":{"isAudited":true,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY '_any access to db1/table1' for user1: table-level mismatch",
"request":{
"resource":{"elements":{"database":"db1", "table":"table1"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"show columns in table1 from db1;"
},
"result":{"isAudited":false,"isAllowed":false,"policyId":-1}
}
,
{"name":"DENY '_any access to db1/_/col1' for user1: table not specified but column was specified",
"request":{
"resource":{"elements":{"database":"db1", "column":"col1"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"fictional use case when request specified a lower level resource by skipping intermediate resource"
},
"result":{"isAudited":false,"isAllowed":false,"policyId":-1}
}
,
{"name":"ALLOW '_any access to db1' for user1: match when request has less levels than policy",
"request":{
"resource":{"elements":{"database":"db1"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"use db1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":3}
}
,
{"name":"ALLOW '_any access to db1/tbl1' for user1: match when request has same levels as policy",
"request":{
"resource":{"elements":{"database":"db1", "table":"tbl1"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"describe db1.tbl1"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":3}
}
,
{"name":"ALLOW '_any access to db1/tbl1/col1' for user1: match when request has more specific levels than policy",
"request":{
"resource":{"elements":{"database":"db1", "table":"tbl1", "column":"col1"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"fictional case: request for any match today happens only at a higher levels"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":3}
}
,
{"name":"ALLOW 'kill_query' for user1 on any cluster",
"request":{
"resource":{"elements":{"hiveservice":"testcluster"}},
"accessType":"serviceadmin","user":"user1","userGroups":["users"],"requestData":"kill query 'dummyqueryid'"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":5}
}
,
{"name":"ALLOW '_any access to demo1/demo_tbl1' for user1: show table test",
"request":{
"resource":{"elements":{"database":"demo1", "table":"demo1_tbl1"}},
"accessType":"","user":"user1","userGroups":["users"],"requestData":"show tables"
},
"result":{"isAudited":true,"isAllowed":true,"policyId":7}
}
]
}