文档 AWS SDK 示例 GitHub 存储库中还有更多 S AWS DK 示例
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 GetContextKeysForCustomPolicy
与 CLI 配合使用
以下代码示例演示如何使用 GetContextKeysForCustomPolicy
。
- AWS CLI
-
示例 1:列出作为命令行参数提供的一个或多个自定义 JSON 策略所引用的上下文键
以下
get-context-keys-for-custom-policy
命令解析每个提供的策略,并列出这些策略使用的上下文键。使用此命令来确定必须提供哪些上下文键值才能成功使用策略模拟器命令simulate-custom-policy
和simulate-custom-policy
。您还可以使用get-context-keys-for-custom-policy
命令检索与 IAM 用户或角色关联的所有策略使用的上下文键列表。以file://
开头的参数值指示命令读取文件的内容,然后使用内容而不是文件名本身作为参数的值。aws iam get-context-keys-for-custom-policy \ --policy-input-list '
{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2015-08-16T12:00:00Z"}}}}
'输出:
{ "ContextKeyNames": [ "aws:username", "aws:CurrentTime" ] }
示例 2:列出作为文件输入提供的一个或多个自定义 JSON 策略所引用的上下文键
以下
get-context-keys-for-custom-policy
命令与前面的示例相同,只是策略是在文件中提供而不是作为参数提供。由于该命令需要 JSON 字符串列表而不是 JSON 结构列表,因此尽管您可以将其折叠成一个,但该文件的结构必须如下所示。[ "Policy1", "Policy2" ]
例如,包含上一个示例中策略的文件必须如下所示。您必须在策略字符串中每个嵌入的双引号前面加上反斜杠 " 来对其进行转义。
[ "{\"Version\": \"2012-10-17\", \"Statement\": {\"Effect\": \"Allow\", \"Action\": \"dynamodb:*\", \"Resource\": \"arn:aws:dynamodb:us-west-2:128716708097:table/${aws:username}\", \"Condition\": {\"DateGreaterThan\": {\"aws:CurrentTime\": \"2015-08-16T12:00:00Z\"}}}}" ]
然后,可以将此文件提交给以下命令。
aws iam get-context-keys-for-custom-policy \ --policy-input-list
file://policyfile.json
输出:
{ "ContextKeyNames": [ "aws:username", "aws:CurrentTime" ] }
有关更多信息,请参阅 IAM 用户指南中的使用 IAM 策略模拟器(AWS CLI 和 AWS API)。AWS
-
有关 API 的详细信息,请参阅AWS CLI 命令参考GetContextKeysForCustomPolicy
中的。
-