AWS密钥管理服务CLI命令



我正在使用命令:

put-key-policy --key-id <keyid> --policy-name <default> --policy <value>

我得到错误

不正确的PolicyDocumentException

我想这是因为我不了解–policy参数的取值。有我可以参考的链接吗?

我自己也遇到过同样的事情,我希望这能有所帮助。这是在FreeBSD服务器上完成的,因此windows用户必须进行适当的调整。如果你运行类似的程序:

$ aws kms put-key-policy --generate-cli-skeleton 

您将返回cli作为输入所需内容的骨架:

{
   "KeyId": "", 
   "PolicyName": "", 
   "Policy": "", 
   "BypassPolicyLockoutSafetyCheck": true
}

这意味着允许的输入是一段JSON,最多有4个可能的参数。在这种情况下,我们希望创建一个新策略,因此我们真正需要的唯一策略是"Policy"。所需要的是一个字符串形式的JSON策略。以以下为例:

{
 "Version" : "2012-10-17",
 "Id" : "key-consolepolicy-3"
}

首先转义双引号,给出:

{
 "Version" : "2012-10-17",
 "Id" : "key-consolepolicy-3"
}

然后用n字符替换换行符,给出:

{n "Version" : "2012-10-17",n "Id" : "key-consolepolicy-3"n }

然后我们把它放在双引号中:

"{n "Version" : "2012-10-17",n "Id" : "key-consolepolicy-3"n }"

最后我们的文件是这样的:

{
  "Policy" : "{n "Version" : "2012-10-17",n "Id" : "key-consolepolicy-3"n }"
}

如果你已经有了一个带有你想使用的策略的密钥,那么你可以简单地检索它:

$ aws kms get-key-policy --policy-name default --key-id XXXXXXXXX > policy

无论以何种方式创建,都可以使用文件中的策略来更新新密钥的策略:

$ aws kms put-key-policy --key-id YYYYYYYY --policy-name default --cli-input-json file://policy

在Windows上,"file://policy"类似于:"file://C:pathtopolicyfile.json">

如果要使用--policy命令行参数而不是文件中的策略,--policy也在寻找字符串形式的JSON策略,因此需要

$ aws kms put-key-policy --key-id YYYYYYYY --policy-name default --policy "{n "Version" : "2012-10-17",n "Id" : "key-consolepolicy-3"n }"

相关内容

  • 没有找到相关文章

最新更新