Uso de GetContextKeysForCustomPolicy con un AWS SDK o la CLI - AWS Identity and Access Management

Uso de GetContextKeysForCustomPolicy con un AWS SDK o la CLI

Los siguientes ejemplos de código muestran cómo utilizar GetContextKeysForCustomPolicy.

CLI
AWS CLI

Ejemplo 1: para enumerar las claves de contexto a las que hacen referencia una o más políticas JSON personalizadas que se proporcionan como parámetro en la línea de comandos

El siguiente comando get-context-keys-for-custom-policy analiza cada política proporcionada y enumera las claves de contexto utilizadas por esas políticas. Utilice este comando para identificar qué valores clave de contexto debe proporcionar para utilizar correctamente los comandos del simulador de políticas simulate-custom-policy ysimulate-custom-policy. También puede recuperar la lista de claves de contexto utilizadas por todas las políticas asociadas a un rol o usuario de IAM mediante el comando get-context-keys-for-custom-policy. Los parámetros que comienzan con file:// indican al comando que lea el contenido del archivo y lo use como valor del parámetro en lugar del nombre del archivo en sí.

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"}}}}'

Salida:

{ "ContextKeyNames": [ "aws:username", "aws:CurrentTime" ] }

Ejemplo 2: para enumerar las claves de contexto a las que hacen referencia una o más políticas JSON personalizadas proporcionadas como entrada de archivo

El siguiente comando get-context-keys-for-custom-policy es igual al anterior, excepto que las políticas se proporcionan en un archivo y no como un parámetro. Como el comando espera una lista de cadenas JSON y no una lista de estructuras JSON, el archivo debe estructurarse de la siguiente manera, aunque puede comprimirlo en una sola.

[ "Policy1", "Policy2" ]

Así, por ejemplo, un archivo que contenga la política del ejemplo anterior debe tener el siguiente aspecto. Debe evitar cada comilla doble incrustada en la cadena de la política precediéndola de una barra invertida “.

[ "{\"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\"}}}}" ]

A continuación, este archivo se puede enviar al siguiente comando.

aws iam get-context-keys-for-custom-policy \ --policy-input-list file://policyfile.json

Salida:

{ "ContextKeyNames": [ "aws:username", "aws:CurrentTime" ] }

Para obtener más información, consulte Uso del simulador de política de IAM (CLI de AWS y API de AWS) en la Guía del usuario de AWS IAM.

PowerShell
Herramientas para PowerShell

Ejemplo 1: este ejemplo busca todas las claves de contexto presentes en el JSON de la política proporcionada. Para proporcionar varias políticas, puede proporcionarlas como una lista de valores separados por comas.

$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

Para obtener una lista completa de las guías para desarrolladores del AWS SDK y ejemplos de código, consulte Uso de IAM con un AWS SDK. En este tema también se incluye información sobre cómo comenzar a utilizar el SDK y detalles sobre sus versiones anteriores.