云服务器内容精选

  • 数据上传 传输加密:数据在上传至MgC服务侧时,使用加密通道来保护数据在传输过程中的安全。 通道认证:只有经过验证的用户账号才能上传数据,增加了数据传输的安全性。 审计日志: 上传操作会被记录在后台日志中,这些日志可以用于审计和监控数据上传活动,确保所有操作都是可追踪和可验证的。 操作权限与最小权限原则:无论哪种采集方式,都需要具备相应的操作权限,并且遵循最小权限原则,即只授予完成特定任务所需的最小权限。 MgC服务侧权限要求:云账号需要具备对应权限才能使用MgC和访问MgC调研数据,MgC相关权限请参考权限管理。
  • 采集安全性 采集时长受控:采集任务在有限的时间内完成,采集避免长时间占用系统资源。 加密保存凭证:所有用于数据采集的凭证都经过加密处理,以保护凭证的安全。线上采集的凭证仅在线上环境中保存。 操作权限与最小权限原则:无论哪种采集方式,都需要具备相应的操作权限,并且遵循最小权限原则,即只授予完成特定任务所需的最小权限。 MgC服务侧权限要求:云账号需要具备对应权限才能使用MgC和访问MgC调研数据,MgC相关权限请参考权限管理。 数据采集项透明性:数据采集的具体项目参见采集项列表。
  • 性能采集 权限要求: Windows系统:需要提供具有Administrator权限的账号。 Linux系统:需要提供root账号。 采集原理: Windows 系统:使用Windows远程管理(WinRM)服务,通过Edge远程访问Windows主机,将PowerShell脚本安全传输至C:/Edge-Scripts路径并执行,以自动化采集系统信息。 Linux 系统:通过SSH协议从Edge访问Linux主机,将Shell脚本传输至/root/rda目录并执行,以自动化采集系统信息。
  • 主机深度采集 权限要求: Windows系统:需要提供具有Administrator权限的账号。 Linux系统:需要提供root账号。 采集原理: Windows系统:通过WinRM服务从Edge访问Windows主机,执行PowerShell脚本采集系统信息。 Linux系统:通过SSH协议从Edge访问Linux主机,将Shell脚本传输至/root/rda目录并执行,以自动化采集系统信息。
  • 认证代码实例讲解 package com.huawei.bigdata.hdfs.examples; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.security.UserGroupInformation; public class KerberosTest { private static String PATH_TO_HDFS_SITE_XML = KerberosTest.class.getClassLoader().getResource("hdfs-site.xml") .getPath(); private static String PATH_TO_CORE_SITE_XML = KerberosTest.class.getClassLoader().getResource("core-site.xml") .getPath(); private static String PATH_TO_KEYTAB = KerberosTest.class.getClassLoader().getResource("user.keytab").getPath(); private static String PATH_TO_KRB5_CONF = KerberosTest.class.getClassLoader().getResource("krb5.conf").getPath(); private static String PRNCIPAL_NAME = "develop"; private FileSystem fs; private Configuration conf; /** * initialize Configuration */ private void initConf() { conf = new Configuration(); // add configuration files conf.addResource(new Path(PATH_TO_HDFS_SITE_XML)); conf.addResource(new Path(PATH_TO_CORE_SITE_XML)); } /** * login Kerberos to get TGT, if the cluster is in security mode * @throws IOException if login is failed */ private void login() throws IOException { // not security mode, just return if (! "kerberos".equalsIgnoreCase(conf.get("hadoop.security.authentication"))) { return; } //security mode System.setProperty("java.security.krb5.conf", PATH_TO_KRB5_CONF); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFromKeytab(PRNCIPAL_NAME, PATH_TO_KEYTAB); } /** * initialize FileSystem, and get ST from Kerberos * @throws IOException */ private void initFileSystem() throws IOException { fs = FileSystem.get(conf); } /** * An example to access the HDFS * @throws IOException */ private void doSth() throws IOException { Path path = new Path("/tmp"); FileStatus fStatus = fs.getFileStatus(path); System.out.println("Status of " + path + " is " + fStatus); //other thing } public static void main(String[] args) throws Exception { KerberosTest test = new KerberosTest(); test.initConf(); test.login(); test.initFileSystem(); test.doSth(); } } Kerberos认证时需要配置Kerberos认证所需要的文件参数,主要包含keytab路径,Kerberos认证的用户名称,Kerberos认证所需要的客户端配置krb5.conf文件。 方法login()为调用hadoop的接口执行Kerberos认证,生成TGT票据。 方法doSth()调用hadoop的接口访问文件系统,此时底层RPC会自动携带TGT去Kerberos认证,生成ST票据。 以上代码可在安全模式下的HDFS二次开发样例工程中创建KerberosTest.java,运行并查看调测结果,具体操作过程请参考HDFS开发指南(安全模式)。
  • 集群(未启用Kerberos认证)安全配置建议 Hadoop社区版本提供两种认证方式Kerberos认证(安全模式)和Simple认证(普通模式),在创建集群时, MRS 支持配置是否启用Kerberos认证。 在安全模式下MRS集群统一使用Kerberos认证协议进行安全认证。 而普通模式下MRS集群各组件使用原生开源的认证机制,一般为Simple认证方式。而Simple认证,在客户端连接服务端的过程中,默认以客户端执行用户(例如操作系统用户“root”等)自动完成认证,管理员或业务用户不显示感知认证。而且客户端在运行时,甚至可以通过注入UserGroupInformation来伪装成任意用户(包括superuser),集群资源管理接口和数据控制接口在服务端无认证和鉴权控制,很容易被黑客利用和攻击。 所以在普通模式下,必须通过严格限定网络访问权限来保障集群的安全。操作建议如下: 尽量将业务应用程序部署在同VPC和子网下的E CS 中,避免通过外网访问MRS集群。 配置严格限制访问范围的安全组规则,禁止对MRS集群的入方向端口配置允许Any或0.0.0.0的访问规则。 如需从集群外访问集群内组件原生页面,请参考创建连接MRS集群的SSH隧道并配置浏览器进行配置。 父主题: 安全性说明