Esempi di policy basate sulle risorse per Glue AWS - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempi di policy basate sulle risorse per Glue AWS

Questa sezione contiene le policy di esempio basate su risorse, tra cui le policy che concedono l'accesso multi-account.

Gli esempi utilizzano il AWS Command Line Interface (AWS CLI) per interagire con AWS Glue operazioni API di servizio. È possibile eseguire le stesse operazioni su AWS Glue console o utilizzando una delle AWS SDKs.

Importante

Modificando un AWS Glue politica delle risorse, potresti revocare accidentalmente le autorizzazioni esistenti AWS Glue utenti del tuo account e causare interruzioni impreviste. Prova questi esempi solo con gli account di sviluppo o di test e verifica che non interrompano nessun flusso di lavoro esistente prima di apportare le modifiche.

Considerazioni sull'utilizzo di politiche basate sulle risorse con Glue AWS

Nota

Sia le politiche IAM che un AWS Glue la propagazione della politica delle risorse richiede alcuni secondi. Dopo aver collegato una nuova policy, potresti anche notare che la policy precedente è ancora in vigore finché la nuova policy non viene propagata attraverso il sistema.

È possibile utilizzare un documento di policy scritte in formato JSON per creare o modificare una policy della risorsa. La sintassi della policy è la stessa di una policy IAM basata sulle identità (consulta la documentazione di riferimento sulle policy JSON IAM), con le seguenti eccezioni:

  • Un blocco "Principal" o "NotPrincipal" è obbligatorio per ogni istruzione di policy.

  • Il "Principal" o il "NotPrincipal" deve identificare principali esistenti validi. I modelli dei caratteri jolly (ad esempio arn:aws:iam::account-id:user/*) non sono consentiti.

  • Il "Resource" blocco nella policy richiede che tutte le risorse corrispondano ARNs alla seguente sintassi delle espressioni regolari (dove la prima %s è la region e la seconda %s è laaccount-id):

    *arn:aws:glue:%s:%s:(\*|[a-zA-Z\*]+\/?.*)

    Ad esempio, sia arn:aws:glue:us-west-2:account-id:* che arn:aws:glue:us-west-2:account-id:database/default sono consentiti, ma non è consentito *.

  • A differenza delle politiche basate sull'identità, un AWS Glue la policy delle risorse deve contenere solo Amazon Resource Names (ARNs) delle risorse che appartengono al catalogo a cui è allegata la policy. Queste iniziano ARNs sempre conarn:aws:glue:.

  • Una policy non può impedire l'ulteriore creazione o modifica dell'identità che la crea.

  • La dimensione di un documento JSON di policy della risorsa non può superare 10 KB.

Utilizza una policy della risorsa per controllare gli accessi nello stesso account

In questo esempio, un utente admin nell'account A crea una policy della risorsa che concede all'utente IAM Alice dell'account A l'accesso completo al catalogo. Alice non ha alcuna policy IAM collegata.

Per fare ciò, l'utente amministratore esegue il seguente AWS CLI comando.

# Run as admin of Account A $ aws glue put-resource-policy --profile administrator-name --region us-west-2 --policy-in-json '{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::account-A-id:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:us-west-2:account-A-id:*" ] } ] }'

Invece di inserire il documento di policy JSON come parte del AWS CLI comando, potete salvare un documento di policy in un file e fare riferimento al percorso del file nel AWS CLI comando, preceduto da. file:// Di seguito è riportato un esempio di come svolgere questa operazione.

$ echo '{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::account-A-id:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:us-west-2:account-A-id:*" ] } ] }' > /temp/policy.json $ aws glue put-resource-policy --profile admin1 \ --region us-west-2 --policy-in-json file:///temp/policy.json

Dopo la propagazione di questa politica delle risorse, Alice può accedere a tutte le AWS Glue risorse nell'Account A, come segue.

# Run as user Alice $ aws glue create-database --profile alice --region us-west-2 --database-input '{ "Name": "new_database", "Description": "A new database created by Alice", "LocationUri": "s3://my-bucket" }' $ aws glue get-table --profile alice --region us-west-2 --database-name "default" --table-name "tbl1"}

In risposta alla get-table chiamata di Alice, il AWS Glue il servizio restituisce quanto segue.

{ "Table": { "Name": "tbl1", "PartitionKeys": [], "StorageDescriptor": { ...... }, ...... } }