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

Uso de PutUserPolicy con un AWS SDK o la CLI

En los siguientes ejemplos de código se muestra cómo se utiliza PutUserPolicy.

Los ejemplos de acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Puede ver esta acción en contexto en el siguiente ejemplo de código:

CLI
AWS CLI

Cómo asociar una política a un usuario de IAM

El siguiente comando put-user-policy asocia una política al usuario de IAM denominado Bob.

aws iam put-user-policy \ --user-name Bob \ --policy-name ExamplePolicy \ --policy-document file://AdminPolicy.json

Este comando no genera ninguna salida.

La política se define como un documento JSON en el archivo AdminPolicy.json. (El nombre y la extensión del archivo no son significativos).

Para más información, consulte Adición y eliminación de permisos de identidad de IAM en la Guía del usuario de AWS IAM.

  • Para obtener información acerca de la API, consulte PutUserPolicy en la Referencia de comandos de la AWS CLI.

Go
SDK para Go V2
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

import ( "context" "encoding/json" "errors" "log" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/iam" "github.com/aws/aws-sdk-go-v2/service/iam/types" "github.com/aws/smithy-go" ) // UserWrapper encapsulates user actions used in the examples. // It contains an IAM service client that is used to perform user actions. type UserWrapper struct { IamClient *iam.Client } // CreateUserPolicy adds an inline policy to a user. This example creates a policy that // grants a list of actions on a specified role. // PolicyDocument shows how to work with a policy document as a data structure and // serialize it to JSON by using Go's JSON marshaler. func (wrapper UserWrapper) CreateUserPolicy(ctx context.Context, userName string, policyName string, actions []string, roleArn string) error { policyDoc := PolicyDocument{ Version: "2012-10-17", Statement: []PolicyStatement{{ Effect: "Allow", Action: actions, Resource: aws.String(roleArn), }}, } policyBytes, err := json.Marshal(policyDoc) if err != nil { log.Printf("Couldn't create policy document for %v. Here's why: %v\n", roleArn, err) return err } _, err = wrapper.IamClient.PutUserPolicy(ctx, &iam.PutUserPolicyInput{ PolicyDocument: aws.String(string(policyBytes)), PolicyName: aws.String(policyName), UserName: aws.String(userName), }) if err != nil { log.Printf("Couldn't create policy for user %v. Here's why: %v\n", userName, err) } return err }
  • Para obtener información sobre la API, consulte PutUserPolicy en la Referencia de la API de AWS SDK for Go.

PowerShell
Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se crea una política incrustada llamada EC2AccessPolicy y se incrusta en el usuario de IAM Bob. Si ya existe una política incrustada con el mismo nombre, se sobrescribirá. El contenido de la política JSON viene del archivo EC2AccessPolicy.json. Tenga en cuenta que debe usar el parámetro -Raw para procesar correctamente el contenido del archivo JSON.

Write-IAMUserPolicy -UserName Bob -PolicyName EC2AccessPolicy -PolicyDocument (Get-Content -Raw EC2AccessPolicy.json)
  • Para obtener información sobre la API, consulte PutUserPolicy en la Referencia de Cmdlet de AWS Tools for PowerShell.

Ruby
SDK para Ruby
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

# Creates an inline policy for a specified user. # @param username [String] The name of the IAM user. # @param policy_name [String] The name of the policy to create. # @param policy_document [String] The JSON policy document. # @return [Boolean] def create_user_policy(username, policy_name, policy_document) @iam_client.put_user_policy({ user_name: username, policy_name: policy_name, policy_document: policy_document }) @logger.info("Policy #{policy_name} created for user #{username}.") true rescue Aws::IAM::Errors::ServiceError => e @logger.error("Couldn't create policy #{policy_name} for user #{username}. Here's why:") @logger.error("\t#{e.code}: #{e.message}") false end
  • Para obtener información sobre la API, consulte PutUserPolicy en la Referencia de la API de AWS SDK for Ruby.

Swift
SDK para Swift
nota

Hay más información en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

import AWSIAM import AWSS3 func putUserPolicy(policyDocument: String, policyName: String, user: IAMClientTypes.User) async throws { let input = PutUserPolicyInput( policyDocument: policyDocument, policyName: policyName, userName: user.userName ) do { _ = try await iamClient.putUserPolicy(input: input) } catch { print("ERROR: putUserPolicy:", dump(error)) throw error } }
  • Para obtener información acerca de la API, consulte PutUserPolicy en la Referencia de la API del AWS SDK para Swift.

Para obtener una lista completa de las guías para desarrolladores del AWS SDK y ejemplos de código, consulte Uso de este servicio 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.