控制台支持 NAS 监控、IP/端口组资源展示等

NAS 是支持基于 NFS 和 Samba(CIFS) 协议的网络共享存储服务,你可以将硬盘挂载到 NAS 服务器上,让多个客户端通过网络连接进行共享,同时支持可访问服务的账号的控制管理。

当 NAS 添加了共享存储目标后,控制台加上了对提供 NAS 服务的主机资源的监控。包括了 CPU、内存、硬盘使用率、吞吐和 IOPS、以及网络吞吐情况等监控。通过监控用户可以检查到 NAS 服务的使用情况,尤其是硬盘使用率等关键指标。

IP/端口组是具有相同特征的一组 IP 或者端口的集合,用于防火墙规则中源 IP 和端口范围的批量定义。控制台新增了在 IP/端口组列表对防火墙的展示,即使用了某个 IP/端口组的防火墙,会在相应表格项中展示出来,方便分组和过滤防火墙。

QingStor 对象存储新增 Scala SDK

QingStor Scala SDK 为首届 QingStor Satellites 活动中成功孵化出的项目,在 QingStor Satellites 活动中,QingStor 团队会选择一些有意义的开源项目为课题,并作为导师指导高校学生逐步完成项目。

QingStor Scala SDK 的开发者为 Cheerx ,来自兰州大学信息科学与工程学院 DSLab 研究生一年级的同学 谢启荣 (下图即为谢启荣同学近照)。

QingStor Scala SDK 已经过 QingStor 官方审核,并被收纳为 QingStor 官方的 Scala SDK,后续将由 QingStor 官方与谢启荣同学一起进行维护。

下文为简要使用文档。更多详细信息请参见 https://github.com/yunify/qingstor-sdk-scala

安装

点击 此处 下载最新版的 Jar 包,也可访问 GitHub 项目的 Releases 页面查看和下载历史版本。

文件名中包含 fat 后缀的 Release 中包含了 SDK 所需的依赖,使用时无需手动加载其依赖包,如 qingstor-sdk-scala-v2.0.0_2.11_fat.jar。而文件名中不包含 fat 的 Release 中没有包含相关依赖,需要手动指定。

描述 SDK 所需依赖关系的 SBT 文件片段样例如下:

libraryDependencies ++= {
  val akkaHttpVersion = "10.0.5"
  val circeVersion = "0.7.1"
  Seq(
    "com.typesafe.akka" %% "akka-http-core" % akkaHttpVersion,
    "com.typesafe.akka" %% "akka-http" % akkaHttpVersion,
    "io.circe" %% "circe-generic" % circeVersion,
    "io.circe" %% "circe-parser" % circeVersion,
    "org.yaml" % "snakeyaml" % "1.17",
    "de.heikoseeberger" %% "akka-http-circe" % "1.15.0"
  )
}

快速开始

使用 SDK 之前请先在 青云控制台 申请 Access Key。

初始化服务

发起请求前首先建立需要初始化服务:

import com.qingstor.sdk.config.QSConfig
import com.qingstor.sdk.service.QingStor

val config = QSConfig("ACCESS_KEY_ID", "SECRET_ACCESS_KEY")
val qsService = QingStor(config)

初始化并创建 Bucket, 需要指定 Bucket 名称和所在 Zone:

import com.qingstor.sdk.service.Bucket

val bucket = Bucket(config, "test-bucket", "pek3a")
val outputFuture = bucket.put(Bucket.PutBucketInput())

获取 Bucket 中存储的 Object 列表

val outputFuture = bucket.listObjects(Bucket.ListObjectsInput())
val listObjectsOutput = Await.result(outputFuture, Duration.Inf)

// Print the HTTP status code.
// Example: 200
println(listObjectsOutput.statusCode.getOrElse(-1))

// Print the key count.
// Example: 7
println(listObjectsOutput.keys.map(_.length).getOrElse(-1))

创建一个 Object

例如一张图片:

// Open file
val file = new File("/tmp/test.jpg")
val input = PutObjectInput(
  // Because this SDK used akka-http as http library, it's useless to set Content-Length here
  contentLength = file.length().toInt,
  body = file
)
val outputFuture = bucket.putObject("test.jpg", input)
val putObjectOutput = Await.result(outputFuture, Duration.Inf)
file.close()

// Print the HTTP status code.
// Example: 201
println(putObjectOutput.statusCode.getOrElse(-1))

删除一个 Object

val outputFuture = bucket.deleteObject(arg, Bucket.DeleteObjectInput())

// Print the HTTP status code.
// Example: 204
println(outputFuture.statusCode.getOrElse(-1))

使用中遇到问题请在 项目 Issues 区 提交反馈。

致谢

最后对 Scala SDK 的作者 Cheerx (谢启荣同学) 表示感谢,同时我们也欢迎更多高校学生或第三方开发者参与到我们的开源项目中来。

【安全公告】Windows 勒索软件病毒风险通告

近期全球爆发了多起较大规模的 Windows 勒索软件病毒攻击事件众多 Windows 系统用户受到影响。

该勒索来自一款名为 “WannaCry” 的软件木马),通过 Windows 系统的 SMB 服务器漏洞进行入侵会导致磁盘文件被病毒加密对用户数据造成严重损失。请可能被漏洞影响的用户仔细阅读本文并做相应的处理。

注意事项

  1. 请检查青云的防火墙规则如果打开了 1351371381394453389 等危险端口建议关闭。
  2.  定期升级微软发布的安全补丁微软已经于 2017 3 14 日发布了 MS17-010安全补丁
  3. 如果必须打开 3389 端口建议仅在必须使用的时候打开其他时间请禁用。推荐您直接使用青云提供的 VNC 来访问此访问方式经过加密保证安全。
  4. 青云的防火墙在默认情况下不会开启这些有风险的端口。所以如果您没有变更过防火墙请放心使用。

参考资料

Microsoft 安全公告 MS17-010 – 严重
WannaCry ransomware used in widespread attacks all over the world
如何看待 5 12 号爆发在各高校的电脑勒索比特币的病毒

QingStor 对象存储推出 FTP 对接工具 qsftpd

qsftpd 是一个将 QingStor 对象存储作为存储后端的 FTP Server,用户通过简单的配置,即可通过 FTP 协议使用对象存储服务。qsftpd 已在 GitHub 开源,更多详情可参见 https://github.com/yunify/qsftpd

下载安装

qsftpd 支持 Linux、macOS 和 Windows 操作系统,最新版本下载链接如下,也可访问 GitHub 项目的 Releases 页面查看和下载历史版本。

使用示例

创建配置文件,如 qsftpd.yaml,并根据需要进行配置,示例配置文件如下。

# 设置 QingStor 对象存储服务
qingstor:
  access_key_id: access_key_id_example
  secret_access_key: secret_access_key_example
  host: qingstor.com
  port: 443
  protocol: https
  log_level: warn

# 填写需要使用的 Bucket
bucket_name: bucket_name_example
zone: pek3a

# FTP Server 配置,如监听的端口号和最大连接数
listen_host: 127.0.0.1
listen_port: 21
public_host: 127.0.0.1
max_connections: 128

# 认证设置,默认允许匿名用户登录,也可以指定特定的用户登录
#users:
#  username_example: password_example

启动 FTP Server。

$ qsftpd -c path/to/your/qsftpd.yaml
[2017-04-12T03:24:40.541Z #2527]  INFO -- : Listening... 127.0.0.1:21
[2017-04-12T03:24:40.541Z #2527]  INFO -- : Starting...
[2017-04-12T03:24:49.330Z #2527]  INFO -- : FTP Client connected: ftp.connected, id: 76e209d6a89448279e947a7babe0097d, RemoteAddr: 127.0.0.1:51788, Total: 1
......

最后使用 ftp 客户端连接 FTP Server 进行测试。

$ ftp -a 127.0.0.1
Connected to 127.0.0.1.
220 Welcome to QSFTP Server
331 User name okay, need password.
230 Password ok, continue
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||6081|)
150 Using transfer connection
d--------- 1 ftp ftp            0  Nov 30 00:00  test-output

226 Closing transfer connection
ftp> put AUTHORS
local: AUTHORS remote: AUTHORS
229 Entering Extended Passive Mode (|||6887|)
150 Using transfer connection
100% |***********************************|   146       91.68 KiB/s    00:00 ETA
226 Closing transfer connection
146 bytes sent in 00:00 (2.19 KiB/s)
ftp> 

控制台回收站支持彻底删除资源

用户主动删除的资源,由系统在回收站中保留 2 小时。这 2 小时内可以随时恢复资源,以避免误删除资源的情况。由于资源没有彻底删除,它们仍然占用一些相关联的配置,例如 DHCP 分配的内网 IP。某些情况下,我们希望这些内网 IP 能够及时释放出来,以便分配到新创建的资源上。为此回收站新增对已删除资源的“彻底删除”操作,用户可以选择一个资源,或批量选择某类型的多个资源彻底删除。

彻底删除资源后,资源将不可恢复。资源所占用的内网 IP 等信息也会释放出来,供其他资源所使用。

青云QingCloud控制台小程序上线

为了方便用户随时随地的管理资源,我们开发了控制台小程序。用户可以在微信小程序搜索【青云QingCloud控制台】,或者通过微信扫一扫下方的微信码:

总览:

这是一个全局的管理界面,用户在首页可以看到消费情况,如果余额不足有充值的快捷入口;目前对一些常用的资源(如:主机,负载均衡器,公网EIP等)提供了告警、监控数据的查看,可以通过告警看到资源的告警情况;通过小程序也可以对工单进行跟踪;点击资源图标可以进入资源详情列表。

             

资源管理:

点击主机等资源图标,会跳转到资源列表。为方便快速定位资源,可以在这里【切换】区和协作资源,也可以根据资源的ID或名称进行搜索。

      

点击某一项资源,或者【蓝色字体资源id】会跳转到具体的资源详情,在详情页除了资源的配置信息外,还可以看到监控及告警信息。点击【右下角的按钮】会弹出资源的操作菜单,可以根据需要对资源进行操作。在监控页面,可以查看 【最近6小时/1天/2周/1个月】 的监控数据。在告警页面,可以查看资源的告警策略和历史记录。

                     

个人中心:

在个人中心页面,可以进行充值,创建账户锁等操作,也可以查看充值记录,消费记录,消息中心等内容。

       

在消息中心页面,点击小漏斗可以对消息类型做过滤。

            

为方便用户对资源的安全进行管理,可以直接设置账户锁:

             

 

控制台新增克隆硬盘功能

为了方便用户对已有硬盘进行克隆,我们提供了克隆硬盘的功能。目前只支持对老架构容量盘(资源 ID 为 vom- 开头的硬盘)的克隆。用户克隆时,可以选择需要克隆成为的硬盘类型,例如性能型,新容量型(资源 ID 为非 vom- 开头的硬盘)和超高性能型。需要注意,性能型和超高性能型有硬盘容量限制,满足硬盘容量限制需求的硬盘才能克隆为性能型或者超高性能型。

创建新拷贝时,可以填写拷贝的数量和名称。创建后,按拷贝数量和类型来收取费用。

注意:
1. 克隆硬盘时,会对命令开始时这个时间点的硬盘数据进行克隆。
2. 克隆硬盘过程中,对正在运行的主机和硬盘不会有影响。
3. 克隆的速度大约 100GB/小时。

【安全公告】Windows 漏洞攻击风险通告

近日曝出一大批 Windows 远程漏洞利用工具被泄漏,会给使用 Windows 主机的用户造成极大的安全隐患。根据目前的情况,Windows Server 的所有版本都可能受到影响。请可能被漏洞影响的用户仔细阅读本文,并做相应的处理。

注意事项:
– 请检查青云的防火墙规则,如果打开了 137、139、445、3389 端口,建议关闭
– 如果必须打开 3389 端口,建议在需要使用的时候打开,其他时间请禁用。更推荐的方式是直接使用青云提供的 VNC 来访问,这个是加密并且是安全的
– 青云的防火墙,默认情况下不会开启这些有风险的端口。所以如果你没有变更过防火墙,那么就是安全的

参考资料:
https://zhuanlan.zhihu.com/p/26375989
https://www.theregister.co.uk/2017/04/14/latest_shadow_brokers_data_dump/
https://www.bleepingcomputer.com/news/security/shadow-brokers-release-new-files-revealing-windows-exploits-swift-attacks/

控制台支持基础网络隔离策略、IP / 端口集合应用修改等功能

基础网络隔离策略

在 SDN 2.0 环境中,我们推荐使用 VPC 来组织网络。不同用户间 VPC 是隔离的,保证了网络的安全性。SDN 1.0 环境中,我们推荐用户在私有网络里使用资源,以实现资源隔离。同时,用户也可以在基础网络里直接创建资源使用,包括 SDN 1.0 环境中的路由器等。缺省情况下,不同用户基础网络的资源在网络层是互通的,用户可以通过防火墙来限制其他用户的访问。

为方便用户控制基础网络的外部可访问性,我们增加了“基础网络隔离策略”的开关。用户可以通过控制台导航 “安全” – “网络安全策略” 找到该策略的开关入口。默认情况下该策略处于关闭状态,以便用户保持现有的互通性。当用户想要一键禁止其他用户访问自己的基础网络资源时,即可点击“开启”启用该策略。

IP / 端口集合应用修改

IP / 端口集合是防火墙规则中关联的配置,用于将具有相同特征的 IP 或者端口设置成为一组集合,在防火墙规则中添加,实现批量管理功能。由于是防火墙外部关联的资源,且一组集合可以对应多个防火墙,当集合配置改变时,防火墙规则需要批量随之更新。为方便做到这一点,我们提供了“IP / 端口集合应用修改”功能。

在集合列表中,用户可以看到哪个集合有了修改,且没有应用更新。这些集合可以点击 “右键” – “应用修改” 进行更新,也可以选择多个集合,在 “更多操作” – “应用修改” 这里批量更新。更新之后,关联的防火墙会自动更新生效。

主机、路由器支持 pps 监控

控制台上的主机和路由器添加了一个监控项 Package Per Second,简称 pps,用于监控资源流量包的情况。用户可以在主机和路由器详情页的监控部分看到这一监控项的折线图。

控制台新增 QingStor 对象存储分段上传管理功能

QingStor 对象存储的分段上传功能是指将一个文件分成多个分段分别上传。当文件体积超过 100MB 时,推荐使用分段上传。与普通的通过 PUT 方法上传文件相比,分段上传有以下好处:

  • 多个分段可以并行上传,比上传单个文件效率更高。
  • 降低了上传失败后重传的成本。
  • 上传过程不受时间影响,分段之间没有上传时间间隔要求。
  • 可以实现「异步创建文件」的过程。

QingStor 对象存储的各种语言 SDK 均已支持分段上传,只需要三步就可以完成一次分段上传:

1. 初始化分段上传

分段上传需要先发送一个初始化请求来获得 Upload ID,后续在上传分段时,在请求参数中附加该 Upload ID,表明分段属于同一个对象。API 详情

2. 上传分段

与 PUT Object 请求类似,只不过需要在上传请求参数中携带 Upload ID 和上传序号,除最后一个分段以外,其它分段最小为 4M,每个分段最大为 1G。API 详情

3. 完成分段上传

当分段上传完毕,需要发送请求结束分段上传,从而获得一个完整的对象。如果未调用此接口,分段上传会处于未完成的状态,此时调用 GET 请求获得该对象会返回错误。API 详情

为了方便用户管理分段上传,QingCloud 控制台提供了查看、完成和取消分段上传的功能。在控制台你可以查看和搜索到所有还未完成的分段上传,点击列表右侧的「查看分段」可以看到对应分段上传包含的分段序号,大小以及创建时间,选择你需要的分段后点击下方的「完成上传」按钮就可以完成此次分段上传,对应的文件也将会显示在文件列表里。更多详细操作请参阅用户指南