虚拟计算机用户权限分配,虚拟机实例的权限和安全配置
为实例设置权限和安全选项
当您启动一个虚拟机时,您可以向其中注入一对密钥,这样您就能通过SSH访问实例了。不过,这样做的前提是您的实例中必须安装了cloud-init这个包。
您可以为一个实例创建不止一对密钥,您也可以将一对密钥放在同一Project下的多个服务器中。如果您的密钥对是用外部工具创建的,您还可以将其导入进OpenStack。
注意: 一对密钥只属于一个用户,并不属于一个组。如果要和多个用户共享一对密钥,每个最终用户都要把相同的密钥导入一次。
如果某个镜像是用固定的root密码,或一个静态的密钥来做认证的,您就不能在启动这个实例时创建密钥对了。
“安全组”是一组网络规则,它能限制对实例的网络访问类型。当您启动实例时,您可以为其设置一个或多个安全组。如果您没有创建安全组,新的实例会被自动分配默认的安全组,除非您另外指定别的组了。
安全组里的安全规则控制着组内实例的网络。任何不符合规则的网络流量都会被拒绝。您可以在网络组中添加或删除规则,还可以修改默认安全组或者其他安全组内的规则。
您可以在安全组中设置允许连接实例的哪些端口(或者是通过哪些协议来连接)。例如,您可以修改规则,允许外部通过SSH来连接服务器,Ping这个服务器,或者允许UDP连接(比如DNS之类的服务)。具体说来,您可以指定规则中的如下参数: - 网络流量的来源:可以设置成允许云中的某个IP,其他组的某个IP,或者所有的IP。 - 协议:如果连接SSH的话就要选TCP。如果要ping的话就选ICMP。有时候还可能要选UDP。 - 虚拟机上的目标端口:定义一个端口范围。如果只想开放一个端口,则需要把这个端口写两遍。ICMP不支持端口,如果您要开发ICMP流量,您需要输入值来定义开放ICMP中的哪些类别和代号。
如果您修改了规则,这些规则即刻生效。
注意: 使用了默认安全组的实例是不能被任何外部IP访问到的。如果您希望用这些外部IP来访问实例,您必须修改默认安全组中的规则。 您也可以为运行中的实例分配一个浮动IP,这样便能从云的外部访问到了。请参看Manage IP Addresses章节。
添加一对密钥
您可以生成一对密钥,也可以将已经生成的公钥上传进OpenStack
如果想生成一对密钥,请使用如下命令:
$ nova keypair-add KEY_NAME > MY_KEY.pem
这条命令会生成一对密钥,其中KEY_NAME是您指定的这对密钥的名称,私钥会保存在您指定的.pem文件中,然后将公钥注册进Nova数据库里。
运行如下命令,保证只有您能读写这个文件的内容:
$ chmod 600 MY_KEY.pem
导入一对密钥
如果您已经创建了一对密钥了,假如您的公钥存放在~/.ssh/id_rsa.pub,您可以运行如下命令来上传公钥。
$ nova keypair-add --pub_key ~/.ssh/id_rsa.pub KEY_NAME
这条命令会将您的公钥注册在Nova数据库中,保存的名称是您指定的,此处是KEY_NAME。
为了确认您的密钥已经成功导入,用下面的命令列出所有的密钥对:
$ nova keypair-list
创建和管理安全组
如果要列出当前Project所有的安全组,包括描述,请使用以下命令:
$ nova secgroup-list
如果要创建一个安全组,请使用如下命令(该命令同时会为安全组命名,还会添加描述):
$ nova secgroup-create SECURITY_GROUP_NAME GROUP_DESCRIPTION
如果要删除某个安全组,请使用如下命令:
$ nova secgroup-delete SECURITY_GROUP_NAME
注意: 您不能删除某个Project下的默认安全组,也不能删除已经分配给一个运行中的实例的安全组。
创建和管理安全组规则
nova secgroup-*-rule命令专门用来修改用户组规则。在您开始修改这些规则前,请先载入OpenStack RC 文件。详情请参阅Set environment variables using the OpenStack RC file。
1. 如果您要列出安全组下地所有规则,请执行以下命令:
```
$ nova secgroup-list-rules SECURITY_GROUP_NAME
```
2. 如果要允许本机的SSH,从以下两个命令中选择一个:
- 允许所有的网络连接,用CIDR格式写明0.0.0.0/0IP和子网。
```
$ nova secgroup-add-rule SECURITY_GROUP_NAME tcp 22 22 0.0.0.0/0
```
- 只允许别的安全组内的IP来访问特定端口:
```
$ nova secgroup-add-group-rule --ip_proto tcp --from_port 22 \
--to_port 22 SECURITY_GROUP_NAME SOURCE_GROUP_NAME
```
3. 如果要允许实例接受ping,从以下两个命令中任选一个:
- 允许从任意地址发来的ping,用CIDR格式写明0.0.0.0/0IP和子网。
```
$ nova secgroup-add-rule SECURITY_GROUP_NAME icmp -1 -1 0.0.0.0/0
```
这条命令将打开所有ICMP流量的所有编码和种类。
- 只允许别的安全组内的IP来ping:
```
$ nova secgroup-add-group-rule --ip_proto icmp --from_port -1 \
--to_port -1 SECURITY_GROUP_NAME SOURCE_GROUP_NAME
```
4. 如果要允许UDP通信,比如需要在虚拟机上搭建DNS的时候,请从下面两个命令中任选一个:
- 允许从任意地址发来的UDP通信,用CIDR格式写明0.0.0.0/0IP和子网。
```
$ nova secgroup-add-rule SECURITY_GROUP_NAME udp 53 53 0.0.0.0/0
```
- 只允许别的安全组内的IP来访问特定端口:
```
$ nova secgroup-add-group-rule --ip_proto udp --from_port 53 \
--to_port 53 SECURITY_GROUP_NAME SOURCE_GROUP_NAME
```
删除用户组规则
如果要删除安全组规则,您要在删除指令后面写明您创建这个规则时添加的参数。
比如,如果您要删除允许所有IP连接SSH的规则,请使用如下指令:
$ nova secgroup-delete-rule SECURITY_GROUP_NAME tcp 22 22 0.0.0.0/0
虚拟计算机用户权限分配,虚拟机实例的权限和安全配置相关推荐
- 内部控制中对权限分配的要求、权限分配的实现方法
在风险管理及内部控制中,权限分配是作为内部环境和重要控制活动来定位的. <企业内部控制基本规范>内部环境中,要求企业编制内部管理手册,使全体员工掌握内部机构设置.岗位职责.业务流程等情况, ...
- Jenkins针对不同的项目视图对不同的用户进行权限分配
Jenkins创建用户并分配不同视图的权限 根据不同的部门分配不同的角色,角色成员只能看到自己部门视图内部的jenkins job Jenkins版本:2.249 因安装了中文包的原因,语言大多以中文 ...
- RBAC(Role-Based Access control)权限模型--基于角色的权限分配解决方案
一.背景 为了达成不同的帐号登陆系统后能看到不同的页面,能执行不同的功能的目标,我们有很多种解决方案,RBAC(Role-Based Access control)权限模型 ,也就是基于角色的权限分配 ...
- linux中设置默认权限的命令,Linux默认权限掩码
Linux教程 Linux教程:http://www.fdlly.com/m/linux 文章目录 默认权限掩码 设置权限掩码 以文字的方式设置权限掩码 查看系统当前的权限掩码 默认权限掩码 当我们创 ...
- 基于SCVMM对虚拟化服务器与虚拟机管理权限分配用户角色
基于SCVMM对虚拟化服务器与虚拟机管理权限 分配用户角色 随着云计算时代的来临,越来越多的企业已经将IT环境迁移到虚拟化环境中,那么企业如何来统一管理如此多的虚拟化主机与虚拟机,通过管理平台是否能实 ...
- oracle9i新建数据库的用户有哪些,Oracle 9i数据库的用户创造以及权限分配
Oracle 9i数据库的用户创建以及权限分配 1.数据库安装时的参数设定 下文中的数据库版本为Oracle 9i(9.2.0),安装数据库时,数据库系统会创建一个数据库实例,其中:安装目录选为:\o ...
- mysql 新增 删除用户和权限分配
1. 新增用户 mysql>insert into mysql.user(Host,User,Password) values("localhost","lionb ...
- MySql8.0.19最新版本创建用户分配权限演示,You have an error in your SQL syntax权限分配问题解决方法
MySql 8.0.19 权限分配 问题一:You have an error in your SQL syntax ---语法问题 问题二:You are not allowed to create ...
- mysql里guest用户_MySQL用户权限分配
mysql> grant 权限1,权限2,-权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令'; 权限1,权限2,-权限n代表select,ins ...
最新文章
- 让Redis在你的系统中发挥更大作用
- 鸿蒙系统支持最低处理器,这四款华为手机可升级到鸿蒙系统,老机型居多,最低只需千元!...
- 使用nginx后如何在web应用中获取用户ip及原理解释
- binding.filter(filter) will trigger OData request to backend
- 为什么 ASP.NET Core WebAPI 继承 ControllerBase 而不是 Controller ?
- oracle数据库表空间追加数据库文件方法
- 通讯录 C语言分类,C语言 通讯录
- 常用的140个Windows XP设置 [转]
- win10分辨率不能调整_三国志:游戏在win10系统无法运行咋办?
- 3---IO流练习题库
- android aar组件化,android module解耦组件化总体概述(推荐)
- REST Assured 系列汇总
- 心理测试单机小软件,十个有趣的心理小测试 好玩的心理测试题
- Vivado IP核之浮点数乘除法 Floating-point
- bzoj 2299(裴蜀定理)
- 【ceph】什么是Ceph?------(MinIO和ceph的区别|GFS(GlusterFS)、MFS、Ceph、Lustre|文档)
- Android 项目开发填坑记 - 使用 MultiDex 解决 64K 限制
- 高考平行报志愿计算机录取规则,2017高考平行志愿录取规则详解
- 最新KTV娱乐微信小程序源码v3.5.15版
- 电脑无法访问共享打印机和文件夹