开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

InfoQ 访谈:如何应用多云环境工具 Cloud Discovery

  • 2019-02-28
  • 本文字数:2736 字

    阅读完需:约 9 分钟

InfoQ访谈:如何应用多云环境工具Cloud Discovery

Cloud Discovery是 Twistlock 提供的一个开源工具。它能连接到云供应商并获取一个清单,其中包含已部署的全部基础设施资源。Cloud Discovery 用聚合的方式收集和报告资源的元数据。此外,提高了跨环境可见性后,可以识别出应用程序的安全漏洞,例如哪些资源缺少防火墙规则。


Cloud Discovery是 Twistlock 提供的一个开源工具。它能连接到云供应商并获取一个清单,其中包含已部署的全部基础设施资源。Cloud Discovery 用聚合的方式收集和报告资源的元数据。


借助 Cloud Discovery,用户不用再搜寻不同云供应商的控制台,手动地遍历所有服务页面(比如像 AWS EC2 或 Azure 虚拟机),然后导出数据并在电子表格中重新校对。 此外,提高了跨环境可见性后,可以识别出应用程序的安全漏洞,例如哪些资源缺少防火墙规则。举例来讲,在 CI/CD 管道中增加云资源后,你可以使用 Cloud Discovery 执行安全检查,然后在新的更改生效前自动告警或者应用程序补丁。 无论应用程序部署在 AWS、Azure 还是 Google Cloud Platform,Cloud Discovery 仅需要只读权限就可以收集必要的信息。


除了能发现云供应商提供的服务外,Cloud Discovery 还可以识别“自安装”的云原生组件,例如 EC2 实例上的 Docker 注册表或者由用户管理的 Kubernetes API 服务器。 然后,借助收集到的数据,它能识别出群集上那些薄弱的安全设置,例如公开可访问的 SSH。


为了进一步了解案例以及如何使用 Cloud Discovery,InfoQ 最近与 Twistlock 首席架构师Liron Levin进行了一次交流。


InfoQ:为什么要选择 Cloud Discovery 来获取已部署资源的清单,而不用云供应商的原生度量工具?


Liron Levin:如今,云供应商正以惊人的速度推出新服务,开发人员也很乐于尝试它们。 这两个趋势引发了一场完美的“风暴”,让组织无法准确知道哪些服务正在部署、部署在哪个云供应商或云区域,以及有哪些具体权限。 我们希望使所有组织都能快速、轻松地了解已部署的服务以及部署在哪里,让他们知道云原生服务快速发展导致的“未知的未知”。

Cloud Discovery 能让组织提高跨云可见性,进而着手保护这些资源,无论是 PaaS 还是 IaaS 资源。 缺少安全保护措施的服务越多,组织就越容易受到攻击和威胁。 借助 Cloud Discovery,组织能即刻获取部署在不同公有云上的云工件的完整清单,并能了解哪些工件有安全保护,哪些没有。


InfoQ:在多云环境中,如何快速上手使用 Cloud Discovery?在哪里以及如何部署它?


Levin:Cloud Discovery 能在容器中作为独立服务运行。例如,你可以运行以下命令来启动一个容器:


docker run -d --name cloud-discovery --restart = always \ -e BASIC_AUTH_USERNAME = admin -e BASIC_AUTH_PASSWORD = pass -e PORT = 9083 -p 9083:9083 twistlock / cloud-discover
复制代码


然后,要扫描并列出所有部署在 AWS 上的资产,你可以使用以下 API 向 Cloud Discovery 发送查询请求:


 curl -k -v -u admin:pass --raw --data \'{"credentials": [{"id":"<AWS_ACCESS_KEY>","secret":"<AWS_ACCESS_PASSWORD>"}]}' \https://localhost:9083/discover\
复制代码


或者,如果想从 GCP 获取相同的信息,你可以使用以下调用:


SERVICE_ACCOUNT=$(cat <service_account_secret> | base64 | tr -d '\n')curl -k -v -u admin:pass --raw --data '{"credentials": [{"secret":"'${SERVICE_ACCOUNT}'", "provider":"gcp"}]}' https://localhost:9083/discover?format=json
复制代码


目前我们正在为 Azure 添加支持。


InfoQ:如何将 Cloud Discovery 与其它工具集成?


Levin:我们在构建 Cloud Discovery 的过程中,把互操作性和易集成性当作重点。我们遵循 Unix“只做一件事情,并把它做好“的理念进行设计,使它能抽取你所有的云原生服务的元数据,并以开放的标准 JSON 格式返回,无论这些服务部署在哪个云供应商、云帐户或云区域。 有许多对 JSON 支持良好的工具,这让监控、告警和变化追踪变得很简单。已经有人使用 Cloud Discovery 向审计人员提供报告,与他们的 SIEM 集成并对新部署的流氓服务发出告警,甚至用它帮助识别在云上的花费是否存在潜在的浪费。

因此,如果一个组织正在使用的监控技术栈支持 JSON,则可以使用集成 API 来获取 JSON 格式的响应,并在所选工具中展示这些数据。 实际上,你可以编写一个应用程序,使用 Cloud Discovery 定时接收数据更新,然后通过相关的 API 更新监控和告警工具。


InfoQ:您能举例说明如何集成 Cloud Discovery 吗?告警可配置吗?


Levin:例如,用户可以在自己的环境中使用 Cloud Discovery 每天执行端口扫描命令,如下所示:


curl -k -v -u admin:pass --raw --data '{"subnet":"172.17.0.1", "debug": true}' [](https://localhost:9083/nmap)
复制代码


上面的调用生成的输出如下图所示:


在这个例子中,你能很快判断出有人配置了一个注册表和一个 MongoDB 实例,但它们都不安全,因为其未经授权。

然后,这些 JSON 数据会被发送到告警系统,并进入预定义的调度流程。接着,系统会向相关人员会发送告警通知,让他们知道有不安全的或这不应该存在的资产。


InfoQ:Cloud Discovery 的路线图是什么?


Levin:Cloud Discovery 已经支持三大主要的云供应商(AWS,GCP 和 Azure),但我们希望在不久的将来增加对 IBM Cloud 和 Oracle Cloud 的支持。 此外,我们正在为常用的非安全应用添加更多检查,这些应用包括RabbitMQRedisPostgresWordpress(暴力破解支持)、ElasticsearchKibanaVault(确保配置了 https)和Nats

针对这些非安全应用,我们正在开发第三个增强功能。这个功能可以探测对常用密码的暴力破解。 它包括更多的暴力破解探测检查,既能检查预定义的用户名和密码,也能检查自定义密码列表。


InfoQ:Cloud Discovery 是 Twistlock 的首次独立贡献。但是您之前一直活跃在开源社区,对吗?


Levin:是的,我们的团队构建了 Docker 的授权框架。OpenShift、Open Policy Agent 和 Docker Swarm 的第三方可插拔敏感数据后端使用了该框架。 我们还为 Kubernetes CIS 基准做出了贡献。 我们的首席技术官 John Morello 与他人共同撰写了NIST SP 800-190,即容器安全指南。我们的研究机构Twistlock Labs发现并公开披露了 14 个安全漏洞,其CVE ID 已收录到 NVD。 因此, 除了开源贡献,我们的团队还为改善整个云原生生态系统的容器安全性做出了重大贡献。

我们开源贡献的一些具体例子包括Docker的可插拔敏感数据后端Docker授权插件特权容器(privileged containers)与用户的兼容性使用TLS用户信息扩展Docker认证,以及对Docker注册表认证默认行为的更改


你可以从官方GitHub代码库访问基于 Go 语言的源代码,并查看对应不同云供应商的具体实现


查看英文原文https://www.infoq.com/news/2019/02/qa-cloud-discovery-multi-cloud


2019-02-28 13:134973

评论

发布
暂无评论
发现更多内容

一次“诡异”的JVM缓存加载问题排查

AI乔治

Java 缓存 架构 JVM

HTTP2服务器推送的第一次尝试

Gopher指北

HTTP2.0 Go 语言

背后技术:双11还能创造什么?

人工智能 数据挖掘 大数据 科技

五面进军饿了么!复盘总结11月上半月大厂面试真题,押题命中率高达95%以上

Java架构追梦

Java 阿里巴巴 架构 面试

亿级大表分库分表实战总结(万字干货,实战复盘)

比伯

Java 编程 程序员 架构 计算机

anyRTC AI降噪|让声音更清晰

anyRTC开发者

人工智能 AI 音视频 WebRTC RTC

记一次 Java 服务性能优化

AI乔治

Java 架构 性能优化 高性能

你以为只是简单的排序?(二)

书旅

数据结构与算法 Go 语言

普渡科技荣登甲子光年“2020中国最具商业潜力的20家机器人Cool Vendor”

DT极客

Spring Boot 监听 Redis Key 失效事件实现定时任务

Bruce Duan

Redis监听 监听过期键

Spring / Spring boot 异步任务编程 WebAsyncTask

Bruce Duan

异步任务编程 WebAsyncTask

Mybatis【2】-- 多个mapper文件以及namespace作用

秦怀杂货店

mybatis Mapper namespace

Java反射说得透彻一些

秦怀杂货店

Java 反射 java反射

影响王兴的一本书

池建强

读书笔记 无限游戏 王兴

成年人的世界都不容易-看看做到年薪50万的程序员,到底有多累?

Java架构师迁哥

你还在使用迭代器删除集合数据,out了,Java 中函数removeIf 不香么

Geek_6f0746

Java JAVA集合 Java迭代器

权威报告发布:京东智联云首次参评即跻身机器学习卓越表现者阵营

京东科技开发者

人工智能 云计算 供应链

python+requests对app和微信小程序进行接口测试

测试人生路

Python 接口测试

serialVersionUID作用是什么以及如何生成的?

秦怀杂货店

Java 序列化 serialVersionUID 反序列化

transient关键字的作用以及几个疑问的解决

秦怀杂货店

序列化 反序列化 transient

排名前 16 的 Java 工具类

Bruce Duan

java工具类

完美!阿里P8仅用242页笔记,就由浅入深讲解了SQL概念

Java~~~

Java sql 阿里巴巴 SQL语法 sql查询

JVM系列-java内存模型(JMM)

诸葛小猿

JMM Java内存模型 共享变量读写

【涂鸦物联网足迹】涂鸦云平台标准指令集说明

IoT云工坊

人工智能 cpu 物联网 智能家居 指令集

快速理解二十三种设计模式(速记)

simon

设计模式 23种设计模式 Java设计模式

从“小众”到“首选”,推动云原生产业落地华为云作用几何?

华为云开发者联盟

云计算 架构 容器

在Android中使用DataBinding(Kotlin)

simon

android Android进阶 JetPack DataBinding 数据绑定

Mybatis【2.1】-- 从读取流到创建SqlSession发生了什么?

秦怀杂货店

数据库 mybatis SQLSession

甲方日常 51

句子

工作 随笔杂谈 日常

线程池运用不当的一次线上事故

AI乔治

Java 架构 高并发 线程池

下笔如有神:这是一个基于营销行业的 AI 技术实践

京东科技开发者

人工智能 自然语言处理 nlp

InfoQ访谈:如何应用多云环境工具Cloud Discovery_服务革新_Christian Melendez_InfoQ精选文章