探索Azure Rights Management Services与HDInsight集群
1. Azure Rights Management Services
Azure Rights Management Services(RMS)是Azure中用于信息和内容保护的重要组件,它在数据安全方面发挥着关键作用。下面将详细介绍其相关功能和操作。
1.1 日志管理
可以使用
Disable - AadrmUsageLogFeature
cmdlet禁用使用日志功能。通过PowerShell可以生成两种日志:
-
管理日志
:记录所有Azure RMS管理命令的日志。使用
Get - AadrmAdminLog
cmdlet获取,示例代码如下:
#Get Azure RMS Admin Log
Get - AadrmAdminLog -Path "C:\AzureRMS\Logs\Admin\AdminLog.log" -FromTime "06/01/2015 08:00:00" -ToTime "06/10/15 07:00:00"
此日志对于监控Azure RMS租户的全局管理员非常重要,因为全局管理员可以启用超级用户功能并将自己指定为超级用户,可能会解密组织保护的所有文件。
-
使用日志
:将Azure RMS使用情况的日志下载到本地存储。使用
Get - AadrmUsageLog
cmdlet获取,示例代码如下:
#Get Azure RMS Usage Log
Get - AadrmUsageLog –Path "C:\AzureRMS\Logs\UsageLog"
使用日志可用于监控和跟踪超级用户的活动,包括文件解密。
需要注意的是,上述两个日志cmdlet仅用于获取日志文件,若要读取和解析日志,可参考https://technet.microsoft.com/library/dn529121.aspx 。
1.2 RMS保护工具
RMS保护工具是一组PowerShell cmdlet,用于批量保护和取消保护文件,可从https://www.microsoft.com/en - us/download/details.aspx?id = 47256 下载。使用该工具前,需要进行服务到服务(S2S)身份验证,使用
Set - RMSServerAuthentication
cmdlet,并提供三个标识符:BposTenantId、AppPrincipalId和SymmetricKey。
-
获取BposTenantId
:使用
Get - AadrmConfiguration
cmdlet,示例代码如下:
# Get BPOS Tenant Id
(Get - AadrmConfiguration).BPOSId
-
创建AppPrincipalId和SymmetricKey
:使用Azure AD PowerShell模块中的
New - MsolServicePrincipalcmdlet,示例代码如下:
# Create Service Principal
$Cred = Get - Credential admin@Company123.com
Connect - MSOLService -Credential $Cred
New - MsolServicePrincipal -DisplayName 'AzureRMSPrincipal'
创建的对称密钥只会显示一次,请务必安全存储。
-
设置RMS服务器身份验证
:示例代码如下:
$Key = 'OfJmfLbu + kCytVwkN888JE5rwBPXKC2qqB0sZxt4QgY='
$AppPrincipalId = 'dbf65047 - 3df7 - 40bb - 9be5 - 87c1fe51ada8'
$TenantId = 7b0d20e9 - f930 - 7777 - 8888 - e8572a9caf93
Set - RMSServerAuthentication –Key $Key -AppPrincipalId $AppPrincipalId -BposTenantId $TenantId
身份验证成功后,即可连接到托管RMS服务的服务器。
1.3 文件保护与取消保护
使用以下三个cmdlet进行文件保护和取消保护操作:
-
Protect - RMSFile
:保护文件。参数如下:
-
-File
:指定要保护的文件路径。
-
-Folder
:指定要批量保护文件的文件夹路径。
-
-Recurse
:与
–Folder
参数配合使用,保护子文件夹中的文件。
-
-OutputFolder
:指定存储受保护文件版本的文件夹,不影响原始文件。
-
-OwnerEmail
:指定受保护文件的不同所有者,默认为当前保护文件的用户。
-
-TemplateId
:指定用于保护文件的模板ID,可使用
Get - RMSTemplate
cmdlet获取模板及其ID。
-
-License
:指定临时权限策略,使用
New - RMSProtectionLicense
cmdlet创建。
-
-DoNotPresistEncryptionKey
:防止离线访问受保护内容,用户每次访问文件时都需进行身份验证并检查策略是否有更改。
示例代码如下:
#Listing RMS Templates
Get - RMSTemplate
#Protect RMS File
Protect - RMSFile –File C:\Documents\MyCompanySecret.docx –TemplateId 10003
-
Unprotect - RMSFile
:取消保护受保护的文件。参数如下:
-
-File:指定要取消保护的文件路径。 -
-Folder:指定要批量取消保护文件的文件夹路径。 -
-Recurse:与–Folder参数配合使用,取消子文件夹中文件的保护。 -
-OutputFolder:指定存储取消保护后文件的文件夹,不影响原始受保护文件。
示例代码如下:
-
#Unprotect RMS File
Unprotect - RMSFile –File C:\Documents\MyCompanySecret.docx
- Get - RMSFileStatus :获取文件的当前保护状态。
1.4 临时权限策略
当现有模板无法满足需求时,可使用
New - RMSProtectionLicense
cmdlet创建临时权限策略,参数如下:
-
-OwnerEmail
:指定权限策略的所有者。
-
-UserEmail
:指定有权访问受保护文件的用户。
-
-Permission
:指定临时权限策略的使用权限,可用权限包括VIEW、EDIT、PRINT、EXPORT、COMMENT、VIEWRIGHTSDATA、EDITRIGHTSDATA、EXTRACT和OWNER。
-
-ValidForDays
:指定受保护内容的有效期(天数)。
示例代码如下:
# Creating Ad - Hoc rights policy
$License = New - RMSProtectionLicense –OwnerEmail 'Sherif@Company123.com' –UserEmail 'Yahia@Company123.com' –Permission 'VIEW', 'COMMENT' –ValidForDays 10
# Protect File
Protect - RMSFile –File C:\Documents\MyCompanySecret.docx –License $License
2. 大数据与HDInsight
随着数据量的爆炸式增长,传统关系数据库系统已难以应对,大数据应运而生。下面将介绍大数据的概念、Hadoop以及Azure HDInsight。
2.1 大数据的特点
大数据具有以下三个主要特点(3Vs):
-
Volume(大量)
:大数据通常具有巨大的体量,以TB为单位。例如,YouTube每分钟上传的视频时长超过25小时,物联网机器生成的日志数据也非常庞大。
-
Velocity(高速)
:大数据的生成速度极快,处理高频接收的数据需要特殊工具和技能。例如,每分钟生成的推文数量超过98,000条。
-
Variety(多样)
:大数据不仅包括日志和记录,还涵盖音频、视频、图像和二进制文件等多种类型,从这些多样化的数据中提取有价值的信息并非易事。
许多企业利用数据湖的概念,将结构化和非结构化数据存储在一起,这对企业来说既是关键的差异化因素,也是一项具有挑战性的任务。
2.2 Hadoop简介
Hadoop是一个Apache开源软件库和框架,用于在计算机集群上实现分布式存储和处理大数据集。它具有高可用性,能够检测和处理应用层的故障,并可从单台计算机扩展到数千台机器。Hadoop主要由以下四个组件组成:
-
Hadoop Common
:支持其他模块的通用实用程序。
-
Hadoop Distributed File System(HDF)
:分布式文件系统,为Hadoop集群中的应用程序数据提供高吞吐量和高性能访问。
-
Hadoop YARN
:用于作业调度和集群资源管理的框架。
-
Hadoop MapReduce
:基于YARN的系统,用于并行处理大型数据集。
Hadoop使用Java编写,通过它可以更轻松、快速地并行处理数据。
2.3 HDInsight简介
HDInsight是Hortonworks与Microsoft合作的成果,是Hadoop在云端的实现。借助Microsoft Azure,开发人员和管理员可以轻松创建、扩展和维护大型节点集群。HDInsight有三种实现方式:
-
Windows可下载版
:用于测试和开发,仅在单台机器上运行单个节点,不用于生产环境。
-
Microsoft APS
:分析平台系统,可作为单独部分购买并连接到平台。
-
Microsoft Azure
:利用云计算能力和基础设施,可创建和使用任意数量的节点集群。
创建HDInsight集群时,只需提供唯一的集群名称、管理员用户密码和所需的数据节点数量,Azure将在几分钟内完成集群的配置并使其投入使用。例如,创建一个四节点集群时,Azure会进行以下操作:
1. 验证集群要求,创建两个A3或A4 VM实例的头节点和两个用于高可用性集群的节点,根据请求的数据节点数量创建相应的A3 VM实例(这里是四个),这些节点按分钟计费。
2. 创建两个A2 VM实例用于安全,三个A1 VM实例的Zookeeper节点用于集群管理,这些节点免费。
需要注意的是,HDInsight集群从创建时开始计费,且不能暂停或分配,只能通过删除集群来停止计费。与传统Hadoop分布安装不同,HDInsight可以无缝访问Azure存储Blob,数据可存储在普通Azure Blob存储中,具有以下优点:
- 便于从运行系统或使用PowerShell上传数据。
- 集群删除时数据得以保留,可仅将集群用于处理数据,节省成本。
2.4 创建第一个HDInsight集群
可以使用Azure管理门户或PowerShell创建HDInsight集群,以下是使用PowerShell的步骤:
1.
准备存储
:
New - AzureStorageAccount -StorageAccountName "pshdclstrstorage" -Location "East US"
$StorageAccountName = "pshdclstrstorage"
$StorageAccountKey = Get - AzureStorageKey pshdclstrstorage | %{$_.Primary}
$storageContext = New - AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
New - AzureStorageContainer -Name "storageforcluster" -Context $storageContext
- 创建集群 :
$ClusterName = "pshdclstr"
$ClusterStorageAccountName = "pshdclstrstorage.blob.core.windows.net"
$ClusterStorageContainer = "storageforcluster"
$ClusterSize = 1
New - AzureHDInsightCluster -Name $ClusterName -Location "East US" -DefaultStorageAccountName $ClusterStorageAccountName -DefaultStorageAccountKey $StorageAccountKey -DefaultStorageContainerName $ClusterStorageContainer -ClusterSizeInNodes $ClusterSize
提交请求后,会弹出用户名和密码的提示框,输入的凭据将用于创建启动Azure HDInsight集群的新账户。可以在PowerShell窗口的上部栏或管理门户中查看创建进度,创建成功后将收到相应消息。
综上所述,Azure Rights Management Services和HDInsight在数据安全和大数据处理方面提供了强大的功能和便捷的操作方式,通过合理使用这些工具和技术,可以更好地管理和处理企业的数据。
下面是创建HDInsight集群的流程mermaid图:
graph LR
A[开始] --> B[准备存储]
B --> C[创建存储账户]
C --> D[获取存储账户密钥]
D --> E[创建存储上下文]
E --> F[创建存储容器]
F --> G[创建HDInsight集群]
G --> H[输入集群凭据]
H --> I[等待集群创建完成]
I --> J[结束]
同时,为了更清晰地展示HDInsight集群创建过程中的成本情况,以下是一个简单的表格:
| 节点类型 | 数量 | 计费情况 |
| ---- | ---- | ---- |
| 头节点(A3或A4 VM实例) | 2 | 按分钟计费 |
| 数据节点(A3 VM实例) | 根据请求数量(如4个) | 按分钟计费 |
| 安全节点(A2 VM实例) | 2 | 免费 |
| Zookeeper节点(A1 VM实例) | 3 | 免费 |
探索Azure Rights Management Services与HDInsight集群
3. HDInsight集群使用注意事项及其他补充说明
3.1 存储选择建议
在使用HDInsight集群时,存储的选择至关重要。虽然可以使用数据节点的内部存储,但更建议使用Azure Blob存储,原因如下:
-
数据上传便捷
:可以从运行系统或使用PowerShell轻松将数据上传到Azure。
-
成本节约
:当集群删除时,数据得以保留,可仅将集群用于数据处理,避免了维护数据的成本。
3.2 集群计费提醒
HDInsight集群从创建的那一刻起就开始计费,并且无法进行暂停或分配操作。因此,如果暂时不需要使用集群,唯一停止计费的方法就是删除集群。在实际使用中,需要根据业务需求合理规划集群的创建和删除时间,以避免不必要的费用支出。
3.3 地域限制说明
在创建Azure存储账户时,存储位置应选择有可用HDInsight服务的数据中心,包括东南亚、北欧、西欧、美国东部和美国西部。如果选择了不支持的地域,可能会导致HDInsight服务无法正常使用。
4. 相关工具和命令总结
4.1 Azure Rights Management Services命令总结
| 命令 | 功能 | 参数说明 |
|---|---|---|
Disable - AadrmUsageLogFeature
| 禁用使用日志功能 | 无 |
Get - AadrmAdminLog
| 获取Azure RMS管理日志 |
-Path
:指定日志保存路径;
-FromTime
和
-ToTime
:指定时间范围
|
Get - AadrmUsageLog
| 获取Azure RMS使用日志 |
-Path
:指定日志保存路径
|
Set - RMSServerAuthentication
| 设置RMS服务器身份验证 |
-Key
:对称密钥;
-AppPrincipalId
:应用程序主体ID;
-BposTenantId
:租户ID
|
Protect - RMSFile
| 保护文件 |
-File
:文件路径;
-Folder
:文件夹路径;
-Recurse
:递归保护子文件夹;
-OutputFolder
:输出文件夹;
-OwnerEmail
:所有者邮箱;
-TemplateId
:模板ID;
-License
:临时权限策略;
-DoNotPresistEncryptionKey
:防止离线访问
|
Unprotect - RMSFile
| 取消保护文件 |
-File
:文件路径;
-Folder
:文件夹路径;
-Recurse
:递归取消子文件夹保护;
-OutputFolder
:输出文件夹
|
Get - RMSFileStatus
| 获取文件保护状态 | 无 |
New - RMSProtectionLicense
| 创建临时权限策略 |
-OwnerEmail
:所有者邮箱;
-UserEmail
:用户邮箱;
-Permission
:权限;
-ValidForDays
:有效期
|
4.2 HDInsight相关命令总结
| 命令 | 功能 | 参数说明 |
|---|---|---|
New - AzureStorageAccount
| 创建Azure存储账户 |
-StorageAccountName
:存储账户名称;
-Location
:存储位置
|
Get - AzureStorageKey
| 获取存储账户密钥 |
-StorageAccountName
:存储账户名称
|
New - AzureStorageContext
| 创建存储上下文 |
-StorageAccountName
:存储账户名称;
-StorageAccountKey
:存储账户密钥
|
New - AzureStorageContainer
| 创建存储容器 |
-Name
:容器名称;
-Context
:存储上下文
|
New - AzureHDInsightCluster
| 创建HDInsight集群 |
-Name
:集群名称;
-Location
:集群位置;
-DefaultStorageAccountName
:默认存储账户名称;
-DefaultStorageAccountKey
:默认存储账户密钥;
-DefaultStorageContainerName
:默认存储容器名称;
-ClusterSizeInNodes
:集群节点数量
|
5. 实际应用场景示例
5.1 Azure Rights Management Services应用场景
-
企业机密文件保护
:企业可以使用
Protect - RMSFile命令对机密文件进行保护,指定合适的模板ID或临时权限策略,确保只有授权人员能够访问和操作这些文件。例如,将公司的财务报表设置为“公司123 - 机密,禁止转发或打印”模板进行保护。
Protect - RMSFile –File C:\Documents\FinancialReport.docx –TemplateId 10003
-
审计和监控
:通过获取管理日志和使用日志,企业可以对Azure RMS的使用情况进行审计和监控,及时发现异常操作。例如,使用
Get - AadrmAdminLog命令获取特定时间段的管理日志。
Get - AadrmAdminLog -Path "C:\AzureRMS\Logs\Admin\AdminLog.log" -FromTime "06/01/2015 08:00:00" -ToTime "06/10/15 07:00:00"
5.2 HDInsight应用场景
- 大数据分析 :企业可以利用HDInsight集群对海量数据进行分析,例如对社交媒体数据、物联网日志数据等进行处理和挖掘。首先创建HDInsight集群,然后将数据上传到Azure Blob存储,使用集群进行数据分析。
# 创建存储账户
New - AzureStorageAccount -StorageAccountName "bigdataanalysisstorage" -Location "East US"
# 创建存储容器
$StorageAccountName = "bigdataanalysisstorage"
$StorageAccountKey = Get - AzureStorageKey bigdataanalysisstorage | %{$_.Primary}
$storageContext = New - AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
New - AzureStorageContainer -Name "bigdatacontainer" -Context $storageContext
# 创建HDInsight集群
$ClusterName = "bigdataanalysiscluster"
$ClusterStorageAccountName = "bigdataanalysisstorage.blob.core.windows.net"
$ClusterStorageContainer = "bigdatacontainer"
$ClusterSize = 3
New - AzureHDInsightCluster -Name $ClusterName -Location "East US" -DefaultStorageAccountName $ClusterStorageAccountName -DefaultStorageAccountKey $StorageAccountKey -DefaultStorageContainerName $ClusterStorageContainer -ClusterSizeInNodes $ClusterSize
6. 总结与展望
Azure Rights Management Services和HDInsight为企业提供了强大的数据安全保护和大数据处理能力。通过合理使用相关工具和命令,企业可以更好地管理和保护敏感数据,同时高效地处理海量数据。
在未来,随着数据量的不断增长和安全需求的提高,这些技术将不断发展和完善。例如,Azure Rights Management Services可能会提供更精细的权限管理和更强大的审计功能;HDInsight可能会支持更多的大数据处理框架和算法,进一步提高数据处理的效率和准确性。企业应密切关注这些技术的发展趋势,及时调整和优化自身的数据管理和处理策略。
下面是一个简单的mermaid流程图,展示了从数据保护到大数据分析的整体流程:
graph LR
A[数据准备] --> B[使用Azure Rights Management Services保护数据]
B --> C[将数据上传到Azure Blob存储]
C --> D[创建HDInsight集群]
D --> E[使用HDInsight集群进行大数据分析]
E --> F[获取分析结果]
通过以上内容的介绍,相信读者对Azure Rights Management Services和HDInsight有了更深入的了解,可以根据实际需求进行实践和应用。
超级会员免费看

被折叠的 条评论
为什么被折叠?



