设为首页 加入收藏

TOP

《Hadoop高级编程》之为Hadoop实现构建企业级安全解决方案(三)
2014-11-24 00:40:57 来源: 作者: 【 】 浏览:76
Tags:Hadoop 高级 编程 之为 实现 构建 企业级 安全 解决方案
Base和Accumulo中的安全性提供类似的数据级安全,但方式不同。如第10章中的讨论,HBase可以对数据提供以逐个表或逐个列为基础的访问控制。当前,它还不支持Accumulo可以做到的单元格安全性,但Rhino项目的Intel发行版正在实施这方面的工作,使得HBase不久后可能会支持基于单元格的安全。

HBase可以与Hadoop的安全模型轻易地集成(使用Kerberos),而且此方案与Hadoop生态系统的其余部分一致。而另一方面,Accumulo是一个较新的顶层Apache项目,包含一个内部访问控制数据库,而且它实现安全性的方式与Hadoop生态系统中其他工具不同。

HBase和Accumulo都很流行。基于其单元格级别的访问控制安全特性,Accumulo在高安全环境中是最流行的,并承诺提供与强制访问控制(MAC)和差异性安全相关的解决方案。

大多数较熟悉关系型数据库的开发者通常习惯于看到类似于表12-1的表,它是一个二维的模型。

表12-1 关系数据模型中的示例数据

名 字

大 学

出生所在州

签 名 短 语

Billy

UCLA

West Virginia

“Brutal”

Jeff

UVA

New Jersey

“C’Mon Man”

在Accumulo的结构中,相同的数据看上去会类似于表12-2,其中使用了较细的粒度来保存数据,包括可见性和能够跟踪数据随时间变化的时间戳。

表12-2 Accumulo数据模型中的数据

行ID

限 定 符

可 见 性

时 间 戳

Billy

School

University

Public

20130503

UCLA

Billy

BirthRecord

State of Birth

Admin

20120503

West Virginia

Billy

Greeting

Signature Phrase

Public

20120503

“Brutal”

Jeff

School

University

Public

20120503

UVA

Jeff

BirthRecord

State of Birth

Admin

20120503

New Jersey

Jeff

Greeting

Signature Phrase

Public

20120503

“C’Mon Man”

注意在表12-2中,可见性被标记了安全标签。可以使用与/或布尔逻辑将这些标签添加到记录中。例如,可以给出类似于表12-3的授权策略,其中可以创建授权凭据并与用户关联,将访问限定为表中的每个单元格。

表12-3 安全策略示例及其安全标签语法

访问某条记录的策略示例

安全标签语法

必须是共和党人而且是美国公民

Republican & USCitizen

必须是警察,或者必须是美国公民且在武装部队中

Police Officer | (USCitizen & ArmedForces)

必须是项目管理者而且必须在FGM或White Oak组织中

ProjectManager & (FGM | White Oak)

超过17岁或者父母同意

Over17 | parentalConsent

在Accumulo的安全模型中,用户向可信的客户端(作为开发人员,可以编写这样的客户端)进行认证,而客户端要负责认证用户并向Accumulo传递适当的授权凭据。你的可选方案为与自己的认证和授权系统相集成,或者使用Accumulo的内部认证/授权组件——可以在其中保存用户和他们的授权凭据。本小节为每种方案都提供了一个示例。

一个简单的示例

让我们考虑一个大学数据库的示例,其中某大学从各个部门和下属组织收集了关于其学生的数据。在此示例中,有来自校园医疗中心、财政中心、大学管理处、体育设施和校园警察的数据。你收集了各种各样的信息,而且整个组织可以查询这些信息。你的需求是保护某些信息,例如如下所述:

● 学生医疗检查记录应该只对医护人员和大学管理处可见。

● 田径学院学生体育相关的记录应该只对他们的教练可见,有时也可对医护人员可见。

● 购买记录、评分以及诸如社会安全号码等敏感信息应该只对大学管理处可见。

● 学生在校园警察处的记录应该只对校园警察或者大学管理处可见。

对于本例,让我们将一些样例数据加载到Accumulo数据库中,如表12-4所示。在这个简单的例子中,有一位名叫Kirk Rest的学生,你有关于他的各种信息,这些信息均是从大学中的大量数据源收集而来的。

表12-4 大学数据示例中的键/值

行ID

限 定 符

可 见 性

时 间 戳

Kirk Rest

SSN

999999999

ADMIN

20050612

Kirk Rest

Phone

804-555-0005

ADMIN

20050612

(续表)

行ID

限 定 符

可 见 性

时 间 戳

Kirk Rest

Address

111 Carson Ave, Richmond VA

ADMIN

20050612

Kirk Rest

Weight

170

MEDICAL | COACH

20110711

Kirk Rest

Running Test

10K

COACH

20110812

56

Kirk Rest

Running Test

10K

COACH

20110517

58

Kirk Rest

Running Test

5K

COACH

20110716

24

Kirk Rest

Running Test

5K

COACH

20110612

27

Kirk Rest

Payment

Semester Payment

ADMIN

20111223

1000

Kirk Rest

Medical Test Report

Cholesterol

MEDICAL

20111222

200

Kirk Rest

Medical Test Report

Biopsy

MEDICAL

20111012

Negative

Kirk Rest

Grade

Organic Chem

ADMIN

20111201

A

Kirk Rest

Grade

Calculus 1

ADMIN

20111201

B

Kirk Rest

Grade

Radical Presbyterianism

ADMIN

20100612

D

Kirk Rest

Police Charge

Curfew Violation

ADMIN | POLICE

20071103

Pending Hearing

Kirk Rest

Police Charge

DUI Arrest

ADMIN | POLICE

20091104

Guilty

假定将此信息加载到已经安装在测试Hadoop实例上的Accumulo存储中。为此,应该使用Accumulo shell,它是一个简单的客户端,可以用于创建和修改表,以及创建用户并为这些用户分配授权凭据。由于本章关注的是安全,而非Accumulo的更多细节,因此这里不讨论加载数据的详情。

注意:

由于不同版本的Accumulo需要与不同版本的Hadoop和Zookeeper一起工作,因此这有时是对安装的一个挑战!上手Accumulo的一种简单方法是使用已

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇cassandra cql order by实验 下一篇海量文件或数据 导致高并发,高流..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: