qwertwwwe


  • 首页

  • 分类

  • 归档

  • 标签

aws-tools

发表于 2018-07-05 | 分类于 cloud

在使用AWS的过程中,需要用到很多AWS提供的工具,以完成相关的AWS部署、配置和更新等操作,这里总结一下最近用到的一些AWS提供的工具。

一、AWS CLI

1.1 基本功能介绍

官方链接:
https://aws.amazon.com/cn/cli/

AWS CLI是AWS官方提供的命令行工具,
安装方法: pip install awscli

功能

aws cli提供基本所有操作,所有可以在界面进行的操作,使用aws cli命令都可以进行相应的操作,所以这个对于需要用脚本自动化一些操作非常有用。

局限

感觉上aws cli应该是针对AWS操作功能最完善的了吧,目前没发现什么局限性。

使用

具体使用方法可以看 aws help,或者看官网,感觉使用起来比较简单。

1.2 使用的一些记录

aws cli账户配置

AWS上账户和权限管理分了很多类,对于账户来说,常见的有User和Role这2类:

(1) User 就是账号+密码,一般公司给的账号会需要安装手机软件,每次登陆时需要输入验证码(MFA 认证)。

(2) Role,这个是用来给一些程序配置用的,比如aws cli, cloudwatch exporter,datadog等。

一般个人用户给的是User用户,User类型用户应为每次登陆需要输入验证码,所以无法直接配置aws cli。如果已有一个User账户,想用这个账户配置aws cli的认证,可以按照官方的教程来:
https://aws.amazon.com/cn/premiumsupport/knowledge-center/authenticate-mfa-cli/

步骤以及需要注意的地方如下:

  1. 在AWS网页->IAM->Users->自己的账户,在Security credentials下面创建一个access key。
  2. 配置aws cli的key id 和 secret key, 这里记得一定要把token设置为空。
1
2
3
aws configure set aws_access_key_id "上面创建的key id"
aws configure set aws_secret_access_key "上面创建的secret key"
aws configure set aws_session_token ""

执行完这几行后,再按照官方的介绍,执行下面的指令。

1
aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

这个时候就可以得到对应的key id, secret key 和 token,用上面的方法配置这3个参数后,就可以用aws cli对aws对象进行操作了。这里,因为用这种方法每次创建的认证key只有差不多1天不到的有效期,所以只用来测试用,而且经常需要重新配置,在获取新的key时,记得需要执行配置aws_session_token的指令把这一项清空,否则会导致无法获取新的key。

二、AWS SDK

为了方便编写自动化脚本,AWS提供了很多SDK,支持目前用到的大多数语言,可以从官方看具体的SDK细节:
https://aws.amazon.com/cn/tools/

支持的列表有:

  • Java
  • .NET
  • Node.js
  • PHP
  • Python
  • Ruby
  • 浏览器
  • golang
  • C++
  • Android
  • IOS
  • React Native
  • 移动Web

SDK的功能和AWS CLI基本一样,集成更方便,具体可以在官方上看官方文档。

三、CloudFormation

官方文档:https://aws.amazon.com/cn/cloudformation/

CloudFormation是AWS提供的一种通过配置文件来管理AWS资源的一种方法。
CloudFormation的配置文件采用json或YAML格式,你可以将你需要创建的一组AWS对象编写在一个CloudFormation配置文件里,比如你的一个服务需要创建几台EC2,并创建对应的Security Group, ELB, CNAME, 你可以将所有资源以及它们之间的关联按照要求的格式,编写在一个CloudFormation文件里,然后在AWS页面里或者用aws cli等方式创建这个CloudFormation,就可以一次创建所有你需要的一套对象。

通过看文档和使用,总结下来CloudFormation有一些优势和局限:

优势

官方的描述:

(1) 全面建模

AWS CloudFormation 使您可以在文本文件中为整个基础设施建模。此模板会成为您的基础设施的单一信任源。这有助于您将组织中使用的基础设施组件标准化,从而实现配置合规性并加快故障排除速度。

(2) 自动化和部署

AWS CloudFormation 以安全、可重复的方式预配置您的资源,使您可以构建和重新构建您的基础设施和应用程序,而不必执行手动操作或编写自定义脚本。CloudFormation 负责确定管理堆栈时要执行的适当操作,并在检测到错误时自动会滚更改。

(3) 仅仅就是代码

通过编纂基础设施,您可以将您的基础设施仅仅视为代码。您可以使用任何代码编辑器对它进行创作,将它签入版本控制系统中,与团队成员一起查看文件,然后将其部署到生产环境中。

限制

最新通过使用CloudFormation总结发现,你可以创建、更新、删除你定义的一组资源,但是CloudFormation有个限制就是你只能对用CloudFormation创建的对象进行更新和操作,不能对已有的手动创建的对象进行操作。

比如你手动在AWS页面上创建了一个EC2,你是不能通过编写CloudFormation文件来对这个EC2的熟悉或配置进行修改的,如果你想修改这个EC2的熟悉,你只能在用在网页上或者aws cli等这些方法进行。典型的案例就是如果你用kops在aws上创建了一个k8s cluster,你是没办法通过CloudFormation来对kops创建的资源进行修改的。

教程资料

官方教程: https://aws.amazon.com/cn/cloudformation/getting-started/

一般创建资源都是参照官方模板来写,官方所有模板: http://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/template-reference.html

下面是一些技巧:
比如,你在给一个EC2配置security group列表时,想一部分SG应用你CloudFormation里创建的,一部分SG id是用户输入的,下面的例子显示了如果在一个EC2里把两部分SG组合在一个:
https://gist.github.com/magnetikonline/a6cfc522a1e9f876b75962f5f553c8e5

另外的一些配置技巧参考:
http://garbe.io/blog/2017/07/17/cloudformation-hacks/

四、 CloudFormer

官方文档:https://docs.aws.amazon.com/zh_cn/AWSCloudFormation/latest/UserGuide/cfn-using-cloudformer.html

CloudFormer是AWS提供的一个工具,它能够把你AWS里面已有的资源导出成CloudFormation模板。这个我没有用到,所以详细信息可以参考官方文档。

vim-spf13

发表于 2018-06-11

spf13-vim

官方链接:https://github.com/spf13/spf13-vim
spf13-vim是一个vim插件配置的集合,整个安装包包含了非常多的插件以及相关配置,具体的安装直接按照官网的教程就行。
系统:macos

1
curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh

自定义的配置和插件

按照官方的说明,自定义的配置写在 ~/.vimrc.local中,如果想添加或者删除插件,也是在这个文件中配置。我觉得spf13-vim中的插件也太多了,想卸掉一些不用的,spf13-vim中用bundle管理插件,
比如要卸载AutoClose, 在~/.vimrc.local中添加:

1
Unbundle 'AutoClose'

然后在vim中执行

1
:BundleClean!

spf13-vim中的主要插件列表

spf13-vim中的插件感觉好多,这里具体列一些主要的,然后根据自己需求定制化一下~

scrooloose/nerdtree

官方链接:https://github.com/scrooloose/nerdtree

这个插件是一个文件浏览插件,效果直接上官方图:
nerdtree.png

spf13-vim中对该插件定义了快捷键,按ctrl+e打开,然后输入?可以查看帮助文档,具体常用快捷键如下:

  • ctrl+e : 打开/关闭插件
  • o : 在当前窗口打开文件
  • t : 在新窗口打开文件
  • i : open split (垂直分屏打开)
  • s : open vsplit (横向分屏打开)

tpope/vim-surround

官方链接:https://github.com/tpope/vim-surround

这个插件是用于方便对括号/引号/XML tag等成对出现的符号进行编辑,例如将”hello”改成’hello’,具体执行方法是在普通模式下快速输入cs,然后输入”‘就会将””替换成’’。

常用快捷键:

  • cs : 替换,例如cs”‘,将”替换成’
  • ds : 删除,例如ds”
  • ysiw : 添加,例如ysiw]

rhysd/conflict-marker.vim

官方链接:https://github.com/rhysd/conflict-marker.vim

主要用来方便处理例如git文件合并时的冲突

c++中指针和引用的区别

发表于 2017-11-09 | 分类于 cpp

一、问题背景

昨天被问到了c++中指针和引用的区别,其实这个问题很早就从网上和书中看过,毕竟这是c++最常用也是很重要的知识点。我一直的理解是指针是一种数据结构,它和int, float等其他数据结构其实没有什么本质的区别,只不过指针这个数据结构表示的值是一个内存地址,用户可以通过指针变量的值去访问相应内存地址中的数据;对于引用,一直以来网上和书上大多数对引用的解释是引用和其绑定的变量是同一个东西,但是怎么去解释什么叫同一个东西,就不好说了,而且我一直以为引用是不占空间的,直观上的理解和它绑定的变量是同一个东西嘛,那引用自身就不占空间咯,但是事实并不是这样,今天从底层对这两个数据类型分析了下,从原理上来理解指针和引用的本质区别。

阅读全文 »

windows驱动-WFP框架介绍及其编程

发表于 2017-08-17 | 分类于 windows

一、WFP简介

Windows过滤平台(Windows Filtering Platform, WFP)是为网络数据包过滤提供的一套框架,其包含相应的API和服务。通过WFP框架,我们可以实现防火墙、入侵检测系统、网络监控等软件。

WFP是windows推出来的新一代对网络数据进行操作的框架,用于取代TDI框架,基于WFP编程相对更加简单(我没接触过TDI…),WFP适用于windows 2000和 Windows vista以及其以后的系统;

WFP的优劣点总结可以参考一下链接:
http://www.komodia.com/wfp_hl

阅读全文 »

Windows驱动开发--测试证书签名

发表于 2017-08-11 | 分类于 windows

微软从Vista开始64位系统加载内核驱动要强制签名,虽然可以重启关闭相关选项,但是还是会出现很多问题,这里我自己测试驱动程序,目前也不想买证书,因此就尝试自己创建一个测试的签名,用来测试自己开发的驱动用。

参考链接:
https://www.mobibrw.com/2014/1404

阅读全文 »

windows驱动开发环境搭建以及helloworld

发表于 2017-08-10 | 分类于 windows

Windows驱动开发的环境搭建以及helloworld程序运行~
还是写个文档记下来,免得一段时间不用又忘了。。~

参考链接:
http://www.mycode.net.cn/language/cpp/1771.html
http://blog.csdn.net/silvervi/article/details/6014619
https://www.mobibrw.com/2014/1404

开发环境搭建

一、开发及测试环境

开发机系统 : win10, 64位
测试机系统: win10 或者 win7, 64位
开发软件: visual stdio 2015, (vs2017不支持,反正目前官网上是这么说的)

阅读全文 »

Linux iptables 详解

发表于 2017-07-12 | 分类于 Linux

最近搭一个框架需要用到iptables做映射,学习了下iptables的原理,总结下方便以后查~。

阅读全文 »

windows read registers

发表于 2017-06-07 | 分类于 windows

windows内核中注册表的打开、读/写操作

参考链接:http://www.blogfshare.com/kernel-registerrw.html

最近在写windows驱动时需要读取注册表的值,一下内容为windows内核中注册表操作;

阅读全文 »

PoDoFo 0.9.5 allows remote attackers to cause a denial of service(infinite loop)

发表于 2017-04-22

PoDoFo 0.9.5 funciton PdfPagesTree::GetPageNodeFromArray in PdfPagesTree.cpp cause a denial of service.

阅读全文 »

General shellcode

发表于 2017-01-18 | 分类于 security

windows xp上的通用shellcode

0day书上3.4节的通用shellcode开发实验:

阅读全文 »
rg

rg

10 日志
5 分类
1 标签
© 2018 rg
由 Hexo 强力驱动
主题 - NexT.Muse