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 denominadoBob
.aws iam put-user-policy \ --user-name
Bob
\ --policy-nameExamplePolicy
\ --policy-documentfile://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 IAMBob
. Si ya existe una política incrustada con el mismo nombre, se sobrescribirá. El contenido de la política JSON viene del archivoEC2AccessPolicy.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.