将 GetContextKeysForCustomPolicy 与 AWS SDK 或 CLI 配合使用 - AWS Identity and Access Management

GetContextKeysForCustomPolicy 与 AWS SDK 或 CLI 配合使用

以下代码示例演示如何使用 GetContextKeysForCustomPolicy

CLI
AWS CLI

示例 1:列出作为命令行参数提供的一个或多个自定义 JSON 策略所引用的上下文键

以下 get-context-keys-for-custom-policy 命令解析每个提供的策略,并列出这些策略使用的上下文键。使用此命令来确定必须提供哪些上下文键值才能成功使用策略模拟器命令 simulate-custom-policysimulate-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" ] }

有关更多信息,请参阅《AWS IAM 用户指南》中的使用 IAM Policy Simulator(AWS CLI 和 AWS API)

PowerShell
适用于 PowerShell 的工具

示例 1:此示例获取所提供策略 json 中存在的所有上下文键。为提供多个策略,您可以用逗号分隔值列表提供。

$policy1 = '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2015-08-16T12:00:00Z"}}}}' $policy2 = '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/"}}' Get-IAMContextKeysForCustomPolicy -PolicyInputList $policy1,$policy2

有关 AWS SDK 开发人员指南和代码示例的完整列表,请参阅 将此服务与 AWS SDK 结合使用。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。