AK还不为大家所熟知,但我敢百分百肯定,未来的几年里,AK在互联网业界的知名度绝对不会比AK47差,甚至会更强,会达到“无人不知,无人不晓”的程度。任何使用云计算的企业和个人,都必须首先经过AK的洗礼!


什么是AK

记得第一次和别人分享AK的时候,对方都先是一愣,然后调侃我怎么一个搞互联网的去搞军工了!这不是一个段子,也许你们脑海中想到的AK还是1974年11月7日在阅兵式上首次露面的这个家伙。但是今天我们的故事和它没有半毛钱关系。

AK47

虽然AK还不为大家所熟知,但我敢百分百肯定,未来的几年里,AK在互联网业界的知名度绝对不会比AK47差,甚至会更强,会达到“无人不知,无人不晓”的程度。任何使用云计算的企业和个人,都必须首先经过AK的洗礼!

那么AK是什么?它又有什么本事能做到人尽皆知呢?

云计算归根结底的产物就是API,也把它叫做API经济。即:云计算里面的API是产品,是能够为云计算提供商带来经济利益的。说白了,就是调用API需要花钱。这个逻辑就和用水用电需要交钱一个道理。用水的时候有水表,根据水表的编号能找到户主的身份。用电的时候有电表,根据电表的编号能找户主的身份。使用云计算API的时候,要根据什么来找到使用者的身份的呢?答案是AK。

AK的英文全称是Access Key,翻译成中文是访问密钥。它属于云计算中身份认证领域的范畴。用户在使用云计算API的时候出示AK,这样云服务提供商就能够根据AK来确定使用者的身份,进而向其收费了。

关于AK的定义,AWS在其文档Understanding and Getting Your Security Credentials中有详细的阐述:

Access Key包含两部分:access key id (例如AKIAIOSFODNN7EXAMPLE)和access key secret (例如wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)。当访问AWS API的时候,可以使用Access Key对API请求进行签名。像用户名和密码一样,在签名的过程中,必须同时使用access key id 和access key secret。从安全的角度,你需要下你个对待用户名密码一样对待你的Access Key。

使用AK签名流程

正如上面的文档所述,当访问云计算API的时候,可以使用AK对API请求进行签名。签名就是给一个API请求添加认证的过程,可以简单的理解为给API请求“盖章”。有了签名的加持,云服务提供厂商就可以识别API调用是谁发起的了。使用AK进行签名的流程如下入所示。

AWS签名过程(来源AWS官网文档)

AWS V2签名过程细节

本文以AWS第二版签名为例,讲解下AK签名的流程。假设某用户持有AK的信息如下:

<AKIAIOSFODNN7EXAMPLE, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY>

要发起一个API请求,访问AWS中elasticmapreduce这款云产品的DescribeJobFlows接口,基础的请求信息如下:

https://elasticmapreduce.amazonaws.com?
Action=DescribeJobFlows
&Version=2009-03-31

AWS在收到这个请求以后,并不知道请求者是谁,也不知道该向谁收费了。为此,AWS要求用户在请求中添加如下参数:

  • AWSAccessKeyId:AK中的access key id
  • SignatureMethod:本次请求的签名方法
  • SignatureVersion:本次请求的签名版本
  • Timestamp:发起本次请求的时间戳
  • Signature:签名的值

在上面的参数中,前四个参数都是可以直接获取或者设定的,最后一个参数需要请求者自己计算。在添加签名之前的请求如下:

https://elasticmapreduce.amazonaws.com?
Action=DescribeJobFlows
&Version=2009-03-31
&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE
&SignatureVersion=2
&SignatureMethod=HmacSHA256
&Timestamp=2011-10-03T15:19:30 

在一切准备就绪之后,就可以按照AWS文档Signature Version 2 Signing Process规定的方式计算签名了。首先标准化待签名的字符串如下:

GET
elasticmapreduce.amazonaws.com
/
AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Action=DescribeJobFlows&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2011-10-03T15%3A19%3A30&Version=2009-03-31

接着使用SignatureMethod指定的算法和用户持有的access key secret进行签名,结果如下

i91nKc4PWAt0JJIdXwz9HxZCJDdiy6cf/Mj6vPxyYIs=

上面的签名值经过URL编码之后就可以添加到请求中了,最终用户向AWS发送的请求如下:

https://elasticmapreduce.amazonaws.com?
Action=DescribeJobFlows
&Version=2009-03-31
&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE
&SignatureVersion=2
&SignatureMethod=HmacSHA256
&Timestamp=2011-10-03T15:19:30
&Signature=i91nKc4PWAt0JJIdXwz9HxZCJDdiy6cf%2FMj6vPxyYIs%3D

使用AK的意义

虽然在上文中频繁提到,使用AK是为了云服务提供上能够知道该向谁收费。但这仅仅是AK众多意义中的一丢丢。AWS在其文档Signing AWS API Requests 中做了详细描述。使用AK对API请求进行签名有如下三个意义:

1. 帮助云服务提供商验证API请求者的身份。

签名能够保证请求的发起者持有合法的access key secret

2. 防止数据在网络传输的过程中被篡改

将请求参数作为一部分来计算hash签名,并将签名作为API请求的一部分。AWS可以在收到请求时验证签名的合法性,以保证传输的数据没有被篡改。(一旦被篡改,签名就不对了)

3. 防止重放攻击

请求的参数中添加了时间戳信息,一旦超过一定的时间限制,请求将不再可用。这就降低了中间人截获API请求并进行重方的风险。


本文以AWS为例,讲解了在云计算场景中AK的基本概念、AK的使用方法、以及AK的意义和价值。正如开篇所讲,虽AK还不为大家所熟知,但随着越来越多的人使用云计算,AK必将成为他们走上云计算的第一课。未来的几年里,AK在互联网业界的知名度会越来越高。当然,我们也要提前意识到,任何事情都有利有弊。AK的普及也必将带来一些新的值得关注的安全问题。本文就不一一赘述了。

觉得本文好的话,就来关注我吧!@E-臻。

广而告之,欢迎转发!!!

阿里云开放平台-企业IT治理团队招聘研发JAVA、C++都要,根据面试情况定级P6,P7,P8等你来拿。

云计算中的认证基础——AK相关推荐

  1. 云计算中的网络基础知识

    一.云计算中的网络基础知识 1.这是虚拟化中的网络框架 第一个圆柱形的设备叫路由器 作用:网络的出口(这不是家用的那种路由器,这里的路由器是指企业级的) 第二行的叫三层交换机 作用:连接不同的网段,可 ...

  2. 云计算中的存储基础知识

    文章目录 前言 云计算虚拟化中的存储架构 虚拟化存储(从下往上看) 非虚拟化存储(从下往上看) 常见的物理磁盘类型 机械硬盘(hard disk drive,HDD) 工作原理 SATA盘 SAS接口 ...

  3. 3. 云计算中的网络基础知识

    3.1 云计算中网络总体架构和所涉物理设备的作用 虚拟化中网络的架构 物理服务器→二层交换机→三层交换机→路由器 东西向流量:数据中心内部.虚拟机与虚拟机之间进行通信,以及虚拟机进行迁移的通信. 南北 ...

  4. Apsara Clouder云计算专项技能认证:云服务器ECS入门[考试真题]

    Apsara Clouder云计算专项技能认证:云服务器ECS入门[认证考试真题](答案仅供参考) 单选题13题 开放云服务器ECS安全组里22端口,有什么作用? A.可以远程访问数据库 B.支持ht ...

  5. Apsara Clouder云计算专项技能认证:云服务器ECS

    介绍 Apsara Clouder云计算专项技能认证:云服务器ECS入门题库,本人得分85分(60分及格),如有错误,欢迎指导,谢谢. 题库 单选1.云服务器ECS产品丰富,以下哪个不是云服务器ECS ...

  6. 【阿里云】Apsara Clouder云计算专项技能认证-云服务器ECS入门,考试真题分享

    以下是阿里云Apsara Clouder云计算专项技能认证-云服务器ECS入门真题汇总篇分享: 1.下列哪一个不是重置ECS密码的步骤? A. 查看实例详情 B.进入控制台 C.远程连接ECS D.点 ...

  7. AWS云计算专业术语认证必备

    本文中介绍的名称大致分类如下表,您可根据自己的需要快速查阅.(分类类别仅供参考)                                                             ...

  8. Apsara Clouder云计算专项技能认证:云服务器ECS入门[考试真题分享]

    Apsara Clouder云计算专项技能认证:云服务器ECS入门[认证考试真题分享](答案仅供参考) 单选13道题 1.下列哪一个不是重置ECS密码的步骤? A.查看实例详情 B.进入控制台 C.远 ...

  9. 个人所得税专项抵扣:Apsara Clouder云计算专项技能认证考试题目和答案【保姆级别教程】

    [保姆级别教程]个人所得税年度应纳税额抵扣:Apsara Clouder云计算专项技能认证:云服务器ECS入门.考试题及答案,已验证过了,新增了最新增加的考题. 一.考试入口 入口: https:// ...

最新文章

  1. 「NLP」 聊聊NLP中的attention机制
  2. linux 更改ctime_linux常用命令
  3. 用VS Code打造最佳Markdown编辑器
  4. ecshop静态、 ecshop伪静态、ecshop伪静态设置详细方法、ECSHOP静态化方法
  5. Robert C. Martin关于UML、CASE的观点
  6. 总裁徐雷“接管”京东 但拍板的仍是刘强东
  7. Spring依赖注入DI
  8. 远程计算机已结束连接解决方法
  9. excel 直接查询企查查数据_EXCEL在多表中查询数据(函数中引用工作表的办法)...
  10. Cube IDE 的下载安装
  11. RSA加密算法流程图
  12. android 渠道配置manifest,Android studio 配置多渠道打包配置
  13. N多计算机精品免费视频下载,不要别后悔啊
  14. Telnet、Mstsc、SSH之间的比较和区别
  15. UNREAL4 PROPERTY SYSTEM
  16. 2017年8月21日 星期一
  17. 诚之和:身边的虚拟人你留意过吗?它们已经开始闯入人类生活
  18. windows10安装Android studio
  19. 大数据行业应用之Hive数据分析航班线路相关的各项指标
  20. git clean -fdx

热门文章

  1. linux系统下SVN服务器搭建
  2. 个人介绍主页制作简单的(html css js)
  3. Adversarial Representation Learning for Robust Patient-Independent Epileptic Seizure Detection(文章剖析)
  4. 一文搞定vim,从安装到入门到精通,助你成功入门vim
  5. 计算机专业大专还学语数外吗,大学越学越秃的5大专业:计算机排第五,数学落榜,榜首实至名归...
  6. [转]REBOL脚本快速入门
  7. 基于STM32的TFDU4101红外通信IRDA+串口DMA方式
  8. 23种设计模式应用场景
  9. 基于php网吧会员管理系统-计算机毕业设计
  10. 随身笔记 - XMPP协议详解