Utilizzare PutUserPolicy con un SDK AWS o una CLI - Esempi di codice per SDK AWS

Sono disponibili altri esempi per SDK AWS nel repository GitHub della documentazione degli esempi per SDK AWS.

Utilizzare PutUserPolicy con un SDK AWS o una CLI

Gli esempi di codice seguenti mostrano come utilizzare PutUserPolicy.

Gli esempi di operazioni sono estratti di codice da programmi più grandi e devono essere eseguiti nel contesto. Puoi vedere questa azione nel contesto nel seguente esempio di codice:

CLI
AWS CLI

Come collegare una policy a un utente IAM

Il comando put-user-policy seguente collega una policy all’utente IAM denominato Bob.

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

Questo comando non produce alcun output.

La policy è definita come documento JSON nel file AdminPolicy.json. (Il nome e l’estensione del file non hanno importanza.)

Per ulteriori informazioni, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l’utente di IAM AWS.

  • Per informazioni dettagliate sull’API, consulta PutUserPolicy nella documentazione di riferimento dei comandi della AWS CLI.

Go
SDK per Go V2
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice 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 }
  • Per informazioni dettagliate sull’API, consulta PutUserPolicy nella documentazione di riferimento dell’API AWS SDK per Go.

PowerShell
Strumenti per PowerShell V4

Esempio 1: questo esempio crea una policy in linea denominata EC2AccessPolicy e la incorpora nell’utente IAM Bob. Se esiste già una policy in linea con lo stesso nome, quest’ultima sarà sovrascritta. Il contenuto della policy JSON proviene dal file EC2AccessPolicy.json. Si noti che per elaborare correttamente il contenuto del file JSON è necessario utilizzare il parametro -Raw.

Write-IAMUserPolicy -UserName Bob -PolicyName EC2AccessPolicy -PolicyDocument (Get-Content -Raw EC2AccessPolicy.json)
  • Per informazioni dettagliate sull’API, consulta PutUserPolicy nella documentazione di riferimento dei cmdlet di AWS Strumenti per PowerShell (V4).

Strumenti per PowerShell V5

Esempio 1: questo esempio crea una policy in linea denominata EC2AccessPolicy e la incorpora nell’utente IAM Bob. Se esiste già una policy in linea con lo stesso nome, quest’ultima sarà sovrascritta. Il contenuto della policy JSON proviene dal file EC2AccessPolicy.json. Si noti che per elaborare correttamente il contenuto del file JSON è necessario utilizzare il parametro -Raw.

Write-IAMUserPolicy -UserName Bob -PolicyName EC2AccessPolicy -PolicyDocument (Get-Content -Raw EC2AccessPolicy.json)
  • Per informazioni dettagliate sull’API, consulta PutUserPolicy nella documentazione di riferimento dei cmdlet di AWS Strumenti per PowerShell (V5).

Ruby
SDK per Ruby
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice 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
  • Per informazioni dettagliate sull’API, consulta PutUserPolicy nella documentazione di riferimento dell’API AWS SDK per Ruby.

Swift
SDK per Swift
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice 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 } }
  • Per informazioni dettagliate sull’API, consulta PutUserPolicy nella documentazione di riferimento dell’API AWS SDK per Swift.