Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
atlas
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dataplatform
atlas
Commits
f756e9b3
Commit
f756e9b3
authored
6 years ago
by
nixonrodrigues
Committed by
Madhan Neethiraj
6 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ATLAS-2463: documentation of Atlas authorization model
Signed-off-by:
Madhan Neethiraj
<
madhan@apache.org
>
parent
fccfe919
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
255 additions
and
55 deletions
+255
-55
Atlas-Authentication.twiki
docs/src/site/twiki/Atlas-Authentication.twiki
+1
-54
Atlas-Authorization-Model.twiki
docs/src/site/twiki/Atlas-Authorization-Model.twiki
+110
-0
Atlas-Authorization-Simple-Authorizer.twiki
...rc/site/twiki/Atlas-Authorization-Simple-Authorizer.twiki
+141
-0
index.twiki
docs/src/site/twiki/index.twiki
+3
-1
No files found.
docs/src/site/twiki/A
uthentication-Authoriz
ation.twiki
→
docs/src/site/twiki/A
tlas-Authentic
ation.twiki
View file @
f756e9b3
---++ Authentication
& Authorization
in Apache Atlas.
---++ Authentication in Apache Atlas.
---+++ Authentication
...
...
@@ -111,56 +111,3 @@ atlas.authentication.method.ldap.user.searchfilter=(uid={0})
atlas.authentication.method.ldap.default.role=ROLE_USER
</verbatim>
---+++ Authorization
---++++ Atlas Authorization Methods [Simple/Ranger]
To set authorization in atlas, update the =atlas.authorizer.impl= properties in =atlas-application.properties=
* *Simple*
* *Ranger*
<verbatim>
atlas.authorizer.impl=simple | ranger | <Qualified Authorizer Class Name>
</verbatim>
---++++ Simple Authorizer.
In Simple Authorizer the policy store file is configured locally. The path of policy store file is set in
=atlas.auth.policy.file= property of =atlas-application.properties=
<verbatim>
atlas.auth.policy.file={{conf_dir}}/policy-store.txt
</verbatim>
The policy store file format is as follows:
<verbatim>
Policy_Name;;User_Name:Operations_Allowed;;Group_Name:Operations_Allowed;;Resource_Type:Resource_Name
</verbatim>
eg. of admin policy:
<verbatim>
adminPolicy;;admin:rwud;;ROLE_ADMIN:rwud;;type:*,entity:*,operation:*,taxonomy:*,term:*
</verbatim>
Note : The User_Name, Group_Name and Operations_Allowed are comma(,) separated lists.
Authorizer Resource Types:
* Operation
* Type
* Entity
* Taxonomy
* Term
* Unknown
Operations_Allowed are r = read, w = write, u = update, d = delete
---++++ Ranger Authorizer.
Ranger Authorizer is enabled by activating Atlas-Ranger plugin from Ambari.
For more details visit the [[http://ranger.apache.org/][Apache-Ranger documentation]].
This diff is collapsed.
Click to expand it.
docs/src/site/twiki/Atlas-Authorization-Model.twiki
0 → 100644
View file @
f756e9b3
---++
Atlas
Authorization
Model
---+++
Introduction
Atlas
is
a
scalable
and
extensible
set
of
core
foundational
governance
services
–
enabling
enterprises
to
effectively
and
efficiently
meet
their
compliance
requirements
within
Hadoop
and
allows
integration
with
the
whole
enterprise
data
ecosystem
.
Apache
Atlas
provides
open
metadata
management
and
governance
capabilities
for
organizations
to
build
a
catalog
of
their
data
assets
,
classify
and
govern
these
assets
and
provide
collaboration
capabilities
around
these
data
assets
for
data
scientists
,
analysts
and
the
data
governance
team
.
This
document
covers
details
of
the
authorization
model
supported
by
Apache
Atlas
to
control
access
to
metadata
managed
by
Atlas
.
---+++
Authorization
of
access
to
Types
Apache
Atlas
provides
a
type
system
that
allows
users
to
model
the
metadata
objects
they
would
like
to
manage
.
The
model
is
composed
of
definitions
called
‘
types
’
.
Apache
Atlas
type
system
supports
following
categories
of
types
:
*
Entity
*
Classification
*
Relationship
*
Struct
*
Enum
The
authorization
model
enables
control
of
which
users
,
groups
can
perform
the
following
operations
on
types
,
based
on
type
names
and
type
categories
:
*
create
*
update
*
delete
Here
are
few
examples
of
access
controls
supported
by
the
model
:
*
Admin
users
can
create
/
update
/
delete
types
of
all
categories
*
Data
stewards
can
create
/
update
/
delete
classification
types
*
Healthcare
data
stewards
can
create
/
update
/
delete
types
having
names
start
with
“
hc
”
---+++
Authorization
of
access
to
Entities
An
entity
is
an
instance
of
an
entity
-
type
and
such
instances
represent
objects
in
the
real
world
–
for
example
a
table
in
Hive
,
a
HDFS
file
,
a
Kafka
topic
.
The
authorization
model
enables
control
of
which
users
,
groups
can
perform
the
following
operations
on
entities
–
based
on
entity
-
types
,
entity
-
classifications
,
entity
-
id
:
*
read
*
create
*
update
*
delete
*
read
classification
*
add
classification
*
update
classification
*
remove
classification
Here
are
few
examples
of
access
controls
supported
by
the
model
:
*
Admin
users
can
perform
all
entity
operations
on
entities
of
all
types
*
Data
stewards
can
perform
all
entity
operations
,
except
delete
,
on
entities
of
all
types
*
Data
quality
admins
can
add
/
update
/
remove
DATA_QUALITY
classification
*
Users
in
specific
groups
can
read
/
update
entities
with
PII
classification
or
its
sub
-
classification
*
Finance
users
can
read
/
update
entities
whose
ID
start
with
‘
finance
’
---+++
Authorization
of
Admin
operations
The
authorization
model
enables
control
of
which
users
,
groups
can
perform
the
following
administrative
operations
:
*
import
entities
*
export
entities
Users
with
above
accesses
can
import
/
export
entities
without
requiring
them
to
be
granted
with
fine
-
grained
entity
level
accesses
.
---+++
Pluggable
Authorization
Apache
Atlas
supports
a
pluggable
authorization
interface
,
as
shown
below
,
that
enable
alternate
implementations
to
handle
authorizations
.
The
name
of
the
class
implementing
the
authorization
interface
can
be
registered
with
Apache
Atlas
using
configuration
=
atlas
.
authorizer
.
impl
=.
When
this
property
is
not
set
,
Apache
Atlas
will
use
its
default
implementation
in
=
org
.
apache
.
atlas
.
authorize
.
simple
.
AtlasSimpleAuthorizer
=.
<
verbatim
>
package
org
.
apache
.
atlas
.
authorize
;
public
interface
AtlasAuthorizer
{
void
init
();
void
cleanUp
();
boolean
isAccessAllowed
(
AtlasAdminAccessRequest
request
)
throws
AtlasAuthorizationException
;
boolean
isAccessAllowed
(
AtlasEntityAccessRequest
request
)
throws
AtlasAuthorizationException
;
boolean
isAccessAllowed
(
AtlasTypeAccessRequest
request
)
throws
AtlasAuthorizationException
;
}
</
verbatim
>
---+++
Simple
Authorizer
Simple
authorizer
is
the
default
authorizer
implementation
included
in
Apache
Atlas
.
For
details
of
setting
up
Apache
Atlas
to
use
simple
authorizer
,
please
see
[[
Atlas
-
Authorization
-
Simple
-
Authorizer
][
Setting
up
Atlas
to
use
Simple
Authorizer
]]
---+++
Ranger
Authorizer
To
configure
Apache
Atlas
to
use
authorization
implementation
provided
by
Apache
Ranger
,
include
the
following
property
in
application
.
properties
config
file
:
<
verbatim
>
atlas
.
authorizer
.
impl
=
ranger
</
verbatim
>
Apache
Ranger
Authorizer
requires
configuration
files
to
be
setup
,
for
example
to
specify
Apache
Ranger
admin
server
URL
,
name
of
the
service
containing
authorization
policies
,
etc
.
For
more
details
on
this
,
please
refer
to
Apache
Ranger
documentation
.
---+++
None
authorizer
In
addition
to
the
default
authorizer
,
Apache
Atlas
includes
an
authorizer
that
permits
all
accesses
to
all
users
.
This
authorizer
can
be
useful
in
test
environments
and
unit
tests
.
To
use
this
authorizer
,
set
the
following
configuration
:
<
verbatim
>
atlas
.
authorizer
.
impl
=
NONE
</
verbatim
>
This diff is collapsed.
Click to expand it.
docs/src/site/twiki/Atlas-Authorization-Simple-Authorizer.twiki
0 → 100644
View file @
f756e9b3
---+++ Setting up Atlas to use Simple Authorizer
As detailed in [[Atlas-Authorization-Model][Atlas Authorization Model]], Apache Atlas supports a pluggable authorization
model. Simple authorizer is the default authorizer implementation included in Apache Atlas. Simple authorizer uses
policies defined in a JSON file. This document provides details of steps to configure Apache Atlas to use the simple
authorizer and details of the JSON file format containing authorization policies.
---++++ Configure Apache Atlas
To configure Apache Atlas to use simple authorizer, include the following properties in application.properties config file:
<verbatim>
atlas.authorizer.impl=simple
atlas.authorizer.simple.authz.policy.file=/etc/atlas/conf/atlas-simple-authz-policy.json
</verbatim>
Please note that if the policy file location specified is not an absolute path, the file will be looked up in following paths:
* Apache Atlas configuration directory (specified by system property =atlas.conf=)
* Apache Atlas server's current directory
* CLASSPATH
---++++ Policy file format
Simple authorizer uses =roles= to group permissions, which can then be assigned to users and user-groups. Following examples
would help to understand the details of the policy file format:
---+++++ Roles
Following policy file defines 3 roles:
* ROLE_ADMIN: has all permissions
* PROD_READ_ONLY: has access to read entities having qualifiedName ending with "@prod"
* TEST_ALL_ACCESS: has all access to entities having qualifiedName ending with "@test"
Simple authorizer supports Java reg-ex to specify values for privilege/entity-type/entity-id/classification/typeName/typeCategory.
<verbatim>
{
"roles": {
"ROLE_ADMIN": {
"adminPermissions": [
{
"privileges": [ ".*" ]
}
],
"entityPermissions": [
{
"privileges": [ ".*" ],
"entityTypes": [ ".*" ],
"entityIds": [ ".*" ],
"classifications": [ ".*" ]
}
],
"typePermissions": [
{
"privileges": [ ".*" ],
"typeCategories": [ ".*" ],
"typeNames": [ ".*" ]
}
]
},
"PROD_READ_ONLY" : {
"entityPermissions": [
{
"privileges": [ "entity-read", "entity-read-classification" ],
"entityTypes": [ ".*" ],
"entityIds": [ ".*@prod" ],
"classifications": [ ".*" ]
}
}
"TEST_ALL_ACCESS" : {
"entityPermissions": [
{
"privileges": [ ".*" ],
"entityTypes": [ ".*" ],
"entityIds": [ ".*@test" ],
"classifications": [ ".*" ]
}
}
},
"userRoles": {
...
},
"groupRoles": {
...
}
}
</verbatim>
---+++++ Assign Roles to Users and User Grips
Roles defined above can be assigned (granted) to users as shown below:
<verbatim>
{
"roles": {
...
},
"userRoles": {
"admin": [ "ROLE_ADMIN" ],
"steward": [ "DATA_STEWARD" ],
"user1": [ "PROD_READ_ONLY" ],
"user2": [ "TEST_ALL_ACCESS" ],
"user3": [ "PROD_READ_ONLY", "TEST_ALL_ACCESS" ],
},
"groupRoles": {
...
}
}
</verbatim>
Roles can be assigned (granted) to user-groups as shown below. An user can belong to multiple groups; roles assigned to
all groups the user belongs to will be used to authorize the access.
<verbatim>
{
"roles": {
...
},
"userRoles": {
...
},
"groupRoles": {
"admins": [ "ROLE_ADMIN" ],
"dataStewards": [ "DATA_STEWARD" ],
"testUsers": [ "TEST_ALL_ACCESS" ],
"prodReadUsers": [ "PROD_READ_ONLY" ]
}
}
</verbatim>
This diff is collapsed.
Click to expand it.
docs/src/site/twiki/index.twiki
View file @
f756e9b3
...
...
@@ -55,7 +55,9 @@ capabilities around these data assets for data scientists, analysts and the data
* [[Search - Basic][Search: Basic]]
* [[Search - Advanced][Search: Advanced]]
* [[security][Security]]
* [[Authentication-Authorization][Authentication and Authorization]]
* [[Atlas-Authentication][Authentication]]
* [[Atlas-Authorization-Model][Atlas Authorization Model]]
* [[Configure-simple-authorizer][Steps to configure Atlas Simple Authorizer]]
* [[Configuration][Configuration]]
* [[Notifications][Notifications]]
* Hooks & Bridges
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment