使用 AWS-Console VS 以编程方式创建的启动配置
Posted
技术标签:
【中文标题】使用 AWS-Console VS 以编程方式创建的启动配置【英文标题】:Launch Configurations Created using AWS-Console VS Programmatically 【发布时间】:2018-03-28 06:38:17 【问题描述】:我想了解是否有一种简单的方法可以确定给定的启动配置是使用 AWS 控制台还是以编程方式创建的?
用例:
我们计划避免使用 AWS-Console 复制/创建启动配置,因此如果使用 AWS-Console 创建任何启动配置,我们希望实施一些警报系统。
那么我们有什么方法可以查看启动配置上的标志并区分启动配置是否是使用 AWS 控制台创建的?
【问题讨论】:
【参考方案1】:快速思考
方法一
-
撤消所有具有控制台访问权限的用户启动配置的权限。
为程序使用单独的用户,该用户有权启动配置。
方法二
编写一个监控 CloutTrail 日志的程序。因为无论是通过控制台还是 API,我们所做的所有事情都/可以登录到 CloudTrail
【讨论】:
方法1:是的,但我们有一些例外,这不是一件容易的事。方法 2:对于未来的创建 - 我们可以使用 CloudTrial 日志发出警报,但是如何找出现有的启动配置混乱?以编程方式与 aws 控制台隔离启动配置。 最好和最快的方法是使用 Athena 来分析CreateLaunchConfiguration
API 调用的日志。
对于现有的基础设施,您还可以挖掘 CloudTrail 日志,无论那里有什么。我想没有其他选择。
是的,看起来,目前还没有找到任何优雅或简单的解决方案【参考方案2】:
我的建议是:仅使用 CloudFormation 创建 LaunchConfig,然后检查是否存在相关的 CF 标记。
额外奖励:您可以为 CF 创建一个特定角色来启动 EC2 实例,然后撤销您的用户的所有权限。
【讨论】:
+1 使用 CloudFromation 创建新的启动配置。但这里的问题是:如何隔离已经创建的现有的。以上是关于使用 AWS-Console VS 以编程方式创建的启动配置的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 以编程方式创建视图时的 Lazy Var vs. Let(节省内存)
ios UITableViewCell 以编程方式在drawRect vs layoutSubviews中创建