# US 10,873,582 B2 · Security design and architecture for a multi-tenant Hadoop cluster

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,582 B2
- Document ID: US10873582B2
- Status: Granted
- Kind: B2
- Application number: 15/602,339
- Filed: 2017-05-23
- Published: 2017-11-23
- Granted: 2020-12-22
- Earliest claimed: 2016-05-23
- Assignees: JPMorgan Chase Bank, N.A.
- Applicants: JPMorgan Chase Bank, N.A.
- Inventors: Akhilesh Gupta; Raja Banerjee; James P. Cuddihy; Jay Rajaram; Ratikanta Mishra; Suman Kumar Addanki; Michael Aguiling
- Web page: https://patentgrep.com/patent/US10873582B2

## CPC

- H04L 63/101: {Access control lists [ACL]}
- G06F 16/182: Distributed file systems
- G06F 21/604: {Tools and structures for managing or administering access control systems}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 63/0807: {using tickets, e.g. Kerberos (cryptographic mechanisms or cryptographic arrangements for entity authentication using tickets or tokens H04L9/3213)}
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Security design and architecture for a multi-tenant Hadoop cluster are disclosed. In one embodiment, in a multi-tenant Hadoop cluster comprising a plurality of tenants and a plurality of applications, a method for identifying, naming, and creating a multi-tenant directory structure in a multi-tenant Hadoop cluster may include (1) identifying a plurality of groups for a directory structure selected from the group consisting of a superuser group, a plurality of tenant groups, and at least one application group; (2) creating an active directory for each of the groups; (3) adding each of a plurality of users to one of the plurality of tenant groups and the application group; (4) creating tenant directories and home directories for the users; and (5) assigning owners, group owners, default permissions, and extended access control lists to the tenant directories and the home directories.

## Claims

### Claim 1

A method for identifying, naming, and creating a multi-tenant directory structure in a multi-tenant Hadoop cluster, comprising:
in a single multi-tenant multi-node Hadoop cluster comprising a plurality of nodes, a plurality of tenants, and a plurality of applications:
one of the tenants or applications identifying a plurality of groups for a multi-level directory structure selected from the group consisting of a superuser group, a plurality of tenant groups, and at least one application group;
one of the tenants or applications creating an active directory for each of the groups;
one of the tenants or applications adding each of a plurality of users to one of the plurality of tenant groups and the application group;
one of the tenants or applications creating tenant directories and home directories for the users;
one of the tenants or applications assigning owners, group owners, default permissions, and extended access control lists (EACL) to the tenant directories and the home directories, wherein the EACLs prevent unauthorized tenants from accessing resources in the tenant directories and the home directories; and
one of the tenants or applications creates a tenant shared space for sharing data between applications within the tenant;
wherein shared resources for a first tenant in the multi-node Hadoop cluster are isolated from a second tenant in the multi-node Hadoop cluster when the shared resources are in use by the first tenant, and
wherein shared resources for the first tenant in the multi-node Hadoop cluster are shared with the second tenant in the multi-node Hadoop cluster when the shared resources are not in use by the first tenant.

### Claim 2 (depends on 1)

The method of claim 1, wherein the multi-level directory structure is a HDFS directory structure.

### Claim 3 (depends on 1)

The method of claim 1, wherein the application group comprises an application functional group and an application human user group.

### Claim 4 (depends on 1)

The method of claim 1, wherein a user added to the tenant group has access to shared resources of the tenant.

### Claim 5 (depends on 1)

The method of claim 1, wherein a user added to the application group has access to application resources and shared resources of the tenant.

### Claim 6 (depends on 1)

The method of claim 1, wherein a first tenant cannot access resources for a second tenant.

### Claim 7 (depends on 1)

The method of claim 1, wherein shared resources for a first application group are isolated from shared recourses of a second application group.

### Claim 8 (depends on 1)

The method of claim 1, further comprising: reporting current access permissions for each tenant in the multi-node Hadoop cluster.

### Claim 9

A method of providing security to a HDFS application in a multi- tenant Hadoop cluster comprising:
in a single multi-tenant multi-node Hadoop cluster comprising a plurality of nodes, a plurality of tenants, and a plurality of applications:
one of the tenants or applications authenticating a client process for a client;
one of the tenants or applications receiving from the client a request comprising at least one of a session ticket and a temporary session key from a key distribution center;
one of the tenants or applications authenticating the client based on at least one client authorization and the at least one of the session ticket and the temporary session key; and
one of the tenants or applications assigning owners, group owners, default permissions, and extended access control lists (EACL) to the tenant directories and the home directories, wherein the EACLs prevent unauthorized tenants from accessing resources in the tenant directories and the home directories;
wherein shared resources for a first tenant in the multi-node Hadoop cluster are isolated from a second tenant in the multi-node Hadoop cluster when the shared resources are in use by the first tenant, and
wherein shared resources for the first tenant in the multi-node Hadoop cluster are shared with the second tenant in the multi-node Hadoop cluster when the shared resources are not in use by the first tenant.

### Claim 10 (depends on 9)

The method of claim 9, wherein the key distribution center is a Kerberos key distribution center.

### Claim 11 (depends on 9)

The method of claim 9, wherein the client validates with the key distribution center by providing a username and password.

### Claim 12 (depends on 11)

The method of claim 11, further comprising: one of the tenants or applications determining at least one group for the client selected from the group consisting of a superuser group, a plurality of tenant groups, and at least one application group.

### Claim 13

A method for providing security for an application in a multi-tenant Hadoop cluster, comprising:
in a single multi-tenant multi-node Hadoop cluster comprising a plurality of nodes, a plurality of tenants, and a plurality of applications:
one of the tenants or applications identifying a plurality of groups and roles for a plurality of tenants, and identifying cross references between the roles and at least one active directory group;
one of the tenants or applications creating an active directory for each of the groups;
one of the tenants or applications adding each of a plurality of users to a tenant group and an application group;
one of the tenants or applications creating base directories for the application schemas;
one of the tenants or applications assigning roles and privileges to the tenants using extended access control lists (EACL); and
one of the tenants or applications creates a tenant shared space for sharing data between applications within the tenant, wherein the EACLs prevent an unauthorized tenant from accessing the tenant shared space;
wherein shared resources for a first tenant in the multi-node Hadoop cluster are isolated from a second tenant in the multi-node Hadoop cluster when the shared resources are in use by the first tenant, and
wherein shared resources for the first tenant in the multi-node Hadoop cluster are shared with the second tenant in the multi-node Hadoop cluster when the shared resources are not in use by the first tenant.

### Claim 14 (depends on 13)

The method of claim 13, wherein the application is Apache HIVE.

### Claim 15 (depends on 13)

The method of claim 13, wherein the application is Cloudera Impala.

### Claim 16 (depends on 13)

The method of claim 13, wherein the roles and privileges are based on at least one tenant application requirement.

### Claim 17 (depends on 13)

The method of claim 13, further comprising:
one of the tenants or applications authenticating an user with a username and password; and
one of the tenants or applications authorizing the user using for role-based, fine-grained authorization.

### Claim 18

A method for providing security for Hbase in a multi-tenant Hadoop cluster, comprising:
in a single multi-tenant multi-node Hadoop cluster comprising a plurality of nodes, a plurality of tenants, and a plurality of applications:
one of the tenants or applications identifying a plurality of Hbase namespaces and groups with permissions to the Hbase namespaces;
one of the tenants or applications creating an active directory for each of the groups;
one of the tenants or applications creating the Hbase namespaces to meet at least one tenant requirement;
one of the tenants or applications creating a default role for each application with at least one privilege; and
one of the tenants or applications creates a tenant shared space for sharing data between applications within the tenant, wherein an Extended Access Control List prevents an unauthorized tenant from accessing the tenant shared space;
wherein shared resources for a first tenant in the multi-node Hadoop cluster are isolated from a second tenant in the multi-node Hadoop cluster when the shared resources are in use by the first tenant, and
wherein shared resources for the first tenant in the multi-node Hadoop cluster are shared with the second tenant in the multi-node Hadoop cluster when the shared resources are not in use by the first tenant.

### Claim 19 (depends on 18)

The method of claim 18, wherein the at least one privilege controls access to a the application.

### Claim 20 (depends on 18)

The method of claim 18, further comprising: one of the tenants or applications authorizing a client action using an access control list.

### Claim 21 (depends on 18)

The method of claim 18, further comprising: one of the tenants or applications granting a client permission using role-based access control.
