AWS身份验证中,计算HMAC SHA 256用于生成签名。签名用于验证请求是否来自已验证的AWS用户,并用于授权请求访问资源。以下是计算HMAC SHA 256的示例代码:
import hashlib
import hmac
import base64
def sign(key, msg):
return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest()
def get_signature_key(key, datestamp, region_name, service_name):
kDate = sign(('AWS4' + key).encode('utf-8'), datestamp)
kRegion = sign(kDate, region_name)
kService = sign(kRegion, service_name)
kSigning = sign(kService, 'aws4_request')
return kSigning
def get_aws_signature(secret_key, message, region_name, service_name):
datestamp = '20201224' # 格式为yyyymmdd
kSigning = get_signature_key(secret_key, datestamp, region_name, service_name)
signature = hmac.new(kSigning, message.encode('utf-8'), hashlib.sha256).hexdigest()
return signature
上述代码使用Python编写,其中secret_key
为AWS用户的秘密访问密钥,message
为要签名的消息,region_name
和service_name
为AWS服务的名称和区域。该方法将返回一个签名字符串,用于身份验证和授权。
上一篇:AWS身份验证和日志记录