详情页标题前

阿里云容器服务ACK签名机制-云淘科技

详情页1

为保证API的安全调用,在调用API时阿里云会对每个API请求通过签名(Signature)进行身份验证。无论使用HTTP还是HTTPS协议提交请求,都需要在请求中包含签名信息。本文指导您如何进行签名处理。

对于每一次HTTP或者HTTPS协议请求,阿里云会根据访问中的签名信息验证访问请求者身份。您在访问时签名信息时,请按照以下方法对请求进行签名处理:

  • 步骤一:构造规范化请求头

  • 步骤二:构造规范化资源

  • 步骤三:构造待签名字符串

  • 步骤四:计算签名

  • 步骤五:将签名添加到请求中

步骤一:构造规范化请求头

阿里云规范化请求头(CanonicalizedHeaders)是非标准HTTP头部信息。是指请求中出现的以x-acs-为前缀的参数信息,构造方法如下:

  • 将所有以x-acs-为前缀的HTTP请求头的名称转换成小写字母。如X-acs-Meta-Name: TaoBao转换成x-acs-meta-name: TaoBao。阿里云规范请求头的名称大小写不敏感,建议全小写。

  • 如果一个公共请求头的值过长,则需要处理其中的
    \r\f分隔符,将其替换成英文半角的空格。

  • 将上一步得到的所有HTTP阿里云规范头按照字典顺序进行升序排列。

  • 删除请求头的名称和值之间的分隔符两端出现的任何空格。例如x-acs-oss-meta-name : TaoBao,Alipay转换成x-acs-oss-meta-name:TaoBao,Alipay

  • 在每一个请求头后添加一个
    分隔符(包括最后一个请求头),然后将所有请求头拼接在一起即获得CanonicalizedHeaders。

步骤二:构造规范化资源

规范化资源(CanonicalizedResource) 表示您想要访问资源的规范描述,具体构造方式如下:

  1. 将请求的查询字符串(queryString)中的参数按照参数名称的字典序重新排序,并以&分隔符连接生成已排序查询字符串。

    如果本次请求没有携带查询字符串,则跳过此步骤。

  2. 将请求资源路径(指URL中host与查询字符串之间的部分,包含host之后的/但不包含查询字符串前的?)与已排序查询字符串以?拼接,得到规范化资源。当查询字符串不存在时,直接用请求资源路径作为规范化资源。

示例

原始请求URL:

http://demo-product.aliyuncs.com/instances?status=ONLINE&group=test_group

规范化资源:

/instances?group=test_group&status=ONLINE

步骤三:构造待签名字符串

按照以下伪代码构造待签名字符串(StringToSign):

StringToSign = 
    HTTP-Verb + "
" +
    Accept + "
" +
    Content-MD5 + "
" +
    Content-Type + "
" +
    Date + "
" +
    CanonicalizedHeaders +
    CanonicalizedResource

参数

描述

HTTP-Verb

大写的HTTP方法名,例如POST、GET。

Accept

Accept请求头的值,当请求头不存在时,使用空字符串代替。

Content-MD5

Content-MD5请求头的值,当请求头不存在时,使用空字符串代替。

Content-Type

Content-Type请求头的值,当请求头不存在时,使用空字符串代替。

Date

Date请求头的值。

CanonicalizedHeaders

步骤一:构造规范化请求头中获得的规范化请求头。

CanonicalizedResource

步骤二:构造规范化资源中获得的规范化资源。

步骤四:计算签名

根据RFC2104的定义,按照HMAC-SHA1算法对上一步生成的待签名字符串进行签名计算,并以Base64编码规则将计算结果编码成字符串,即得到最终的签名值(Signature)。

Signature = Base64( HMAC-SHA1( SigningKey, StringToSign ) )

重要

计算签名时使用的SigningKey值就是您的AccessKey Secret。更多信息,请参见创建AccessKey。

步骤五:将签名添加到请求中

计算出签名结果Signature后,按照以下规则拼接字符串,并将结果作为Authorization请求头的值。

Authorization = "acs " + AccessKeyId + ":" + Signature

相关文档

  • 公共请求和返回结果

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158076.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云对象存储OSS为什么文件读写权限修改为私有后,通过文件URL下载文件报错?-云淘科技

    本文介绍文件读写权限修改为私有后,通过文件URL下载文件报错的原因。 当文件读写权限为公共读或者公共读写时,您可以通过文件URL直接下载文件。当文件读写权限修改为私有后,您需要在文件URL中包含签名,然后将签名URL分享给第三方用于下载文件。具体操作,请参见分享文件。 内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家阿里云企业补贴进行中: 马上申…

    阿里云对象存储 2023年12月10日
  • 阿里云容器服务ACK移除节点-云淘科技

    当您不再需要该节点继续工作时,可以通过以下操作移除节点。 前提条件 已创建Kubernetes集群。具体操作,请参见创建Kubernetes专有版集群。 已通过kubectl连接Kubernetes集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。 工作原理 节点池移除节点是指将集群中的节点移出集群,并同时调整期望节点数,调…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACK删除集群-云淘科技

    您可以通过容器服务管理控制台删除不再使用的集群。本文介绍删除集群的规则、步骤,以及相关的常见问题和解决方案。 索引 集群删除及节点释放规则 操作步骤 常见问题 重要 删除集群前,请手动清理工作负载(无状态、有状态、任务和定时任务),否则可能导致集群删除失败。关于工作负载的更多信息,请参见工作负载。 集群删除及节点释放规则 删除集群时,将依次删除集群内的节点池…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云容器服务ACKAPI概览-云淘科技

    本产品(分布式云容器平台/2022-01-01)的OpenAPI采用RPC签名风格,签名细节参见签名机制说明。我们已经为开发者封装了常见编程语言的SDK,开发者可通过下载SDK直接调用本产品OpenAPI而无需关心技术细节。如果现有SDK不能满足使用需求,可通过签名机制进行自签名对接。由于自签名细节非常复杂,需花费 5个工作日左右。因此建议加入我们的服务钉钉…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACK使用VPC的多路由表功能-云淘科技

    ACK通过CCM(Cloud Controller Manager)组件在VPC路由表中添加合适的路由来连通集群中Pod之间的网络连接。您可以通过更新cloud-config配置文件让ACK集群使用VPC多路由表功能。本文介绍如何让ACK集群使用VPC支持的多路由表。 前提条件 已创建ACK集群: 创建ACK托管集群。具体操作,请参见创建Kubernetes…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。