AWS IAM - 安全地连接生成的访问密钥ID和秘密访问密钥

时间:2018-03-22 04:09:32

标签: amazon-web-services aws-iam

我想将我的访问密钥ID和秘密访问密钥连接在一起,这样我就可以轻松地使用Azure Key Vault轮换凭据。我很难找到生成的访问密钥ID或秘密访问密钥不会使用哪些字符来保持它们在连接字符串中分开。使用分号或冒号是否安全?

编辑:https://docs.aws.amazon.com/IAM/latest/APIReference/API_AccessKey.html表示访问密钥ID可以包含任何非空格字符,但我不确定生成的ID在实践中是否更受限制。不幸的是,没有给出秘密访问密钥的指导。空间是合理的分隔符吗?

1 个答案:

答案 0 :(得分:1)

亚马逊实际上提供正则表达式来搜索this article中的访问密钥和秘密访问密钥,我们可以用它来说明使用了哪些字符:

  

搜索访问密钥ID:(?<![A-Za-z0-9/+=])[A-Za-z0-9/+=]{40}(?![A-Za-z0-9/+=])。在英语中,这个正则表达式说:找到20个字符,大写,字母数字字符串,它们之前或之后没有任何大写字母数字字符。

     

搜索秘密访问密钥:/+=。在英语中,这个正则表达式说:找到我之前或之后没有任何64个字符的40个字符的base-64字符串。

因此,访问密钥中的字母和数字加上字符 function ConfirmOnSubmit() { $("#checkAll").click(function () { $(".checkBox").prop('checked', $(this).prop('checked')); }); $("#DivRMA").dialog({ height: 300, width: 600, modal: true, title: "Return Merchandise Authorization", buttons: { "Return": function () { var strids = new Array(); $('input:checkbox.checkBox').each(function () { if ($(this).prop('checked')) { strids.push($(this).val()); } }); var options = {}; options.url = "/Home/Delete"; options.type = "POST"; options.data = { ECSIds: strids }; options.dataType = "json"; options.success = function (result) { //deleted success } $.ajax(options); }, "Cancel": function () { $(this).dialog("close"); return false; } } }); } Public ActionResult Delete(string[] ECSIds) { //Delete Code } 可能会出现在密钥中。这意味着分号或冒号是分隔符的安全选择。