Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Proteggere le funzioni con un tag

Modalità Focus
Proteggere le funzioni con un tag - AWS Lambda

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à.

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à.

La seguente procedura mostra un modo per impostare le autorizzazioni per le funzioni tramite ABAC. In questo scenario di esempio, creerai quattro policy di autorizzazione IAM. Quindi, collegherai queste policy a un nuovo ruolo IAM. Infine, creerai un utente IAM e gli assegnerai l'autorizzazione per assumere il nuovo ruolo.

Prerequisiti

Assicurati di avere un ruolo di esecuzione Lambda. Userai questo ruolo quando concedi le autorizzazioni IAM e crei una funzione Lambda.

Fase 1: richiesta di tag sulle nuove funzioni

Quando utilizzi ABAC con Lambda, è consigliabile richiedere che tutte le funzioni abbiano i tag. Questo aiuta a garantire che le policy di autorizzazione ABAC funzionino come previsto.

Crea una policy IAM simile a quella del seguente esempio. Questa policy utilizza le chiavi aws: RequestTag /tag-key, aws: ResourceTag /tag-key e aws: TagKeys condition per richiedere che le nuove funzioni e il principale IAM che le crea abbiano entrambi il tag. project Il modificatore ForAllValues assicura che project sia l'unico tag consentito. Se non includi il modificatore ForAllValues, gli utenti potranno aggiungere altri tag alla funzione purché passino anche loro project.

Esempio : richiesta di tag sulle nuove funzioni
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lambda:CreateFunction", "lambda:TagResource" ], "Resource": "arn:aws:lambda:*:*:function:*", "Condition": { "StringEquals": { "aws:RequestTag/project": "${aws:PrincipalTag/project}", "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": "project" } } } }

Fase 2: Consentire azioni basate su tag collegati a una funzione Lambda e al principale IAM

Crea una seconda policy IAM utilizzando la chiave di condizione aws: ResourceTag /tag-key per richiedere che il tag del principale corrisponda al tag associato alla funzione. La seguente policy di esempio consente ai principali con tag project di richiamare le funzioni con il tag project. Se una funzione ha altri tag, l'azione è negata.

Esempio : Richiesta di tag corrispondenti sulla funzione e sul principale IAM
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:*:function:*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }

Fase 3: Concessione delle autorizzazioni di elenco

Crea una policy che consenta al principale di elencare le funzioni Lambda e i ruoli IAM. Ciò consente al principale di vedere tutte le funzioni Lambda e i ruoli IAM sulla console e quando si chiamano le operazioni API.

Esempio : Concessione delle autorizzazioni di elenco per Lambda e IAM
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllResourcesLambdaNoTags", "Effect": "Allow", "Action": [ "lambda:GetAccountSettings", "lambda:ListFunctions", "iam:ListRoles" ], "Resource": "*" } ] }

Fase 4: Concessione delle autorizzazioni IAM

Crea una policy che consenta iam:. PassRole Questa autorizzazione è necessaria quando si assegna un ruolo di esecuzione a una funzione. Nella seguente policy di esempio, sostituisci l'ARN di esempio con l'ARN del tuo ruolo di esecuzione Lambda.

Nota

Non utilizzare la chiave di condizione ResourceTag in una policy con l'operazione iam:PassRole. Non puoi utilizzare il tag su un ruolo IAM per controllare l'accesso a chi può passare tale ruolo. Per ulteriori informazioni sulle autorizzazioni necessarie per passare un ruolo a un servizio, vedere Concessione a un utente delle autorizzazioni per passare un ruolo a un servizio. AWS

Esempio : Concessione dell'autorizzazione per inviare il ruolo di esecuzione
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::111122223333:role/lambda-ex" } ] }

Fase 5: Creazione del ruolo IAM

Una best practice consiste nell'utilizzare i ruoli per delegare le autorizzazioni. Crea un ruolo IAM chiamato abac-project-role:

  • In Fase 1: Selezione dell'entità attendibile, scegli Account AWS , quindi Questo account.

  • In Fase 2: Aggiunta delle autorizzazioni, collega le quattro policy IAM create nei passaggi precedenti.

  • In Fase 3: Assegnazione di un nome, revisione e creazione, scegli Add tag (Aggiungi tag). In Chiave, inserire project. Non immettere un valore.

Fase 6: Creazione dell'utente IAM

Crea un utente IAM chiamato abac-test-user. Nella sezione Set permissions (Imposta autorizzazioni), seleziona Attach existing policies directly (Collega direttamente le policy esistenti), quindi Create policy (Crea policy). Immetti la seguente definizione di policy. Sostituisci 111122223333 con il tuo ID account AWS. Questa policy consente a abac-test-user di assumere il ruolo abac-project-role.

Esempio : Consentire all'utente IAM di assumere il ruolo ABAC
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/abac-project-role" } }

Fase 7: Test delle autorizzazioni

  1. Accedi alla console come. AWS abac-test-user Per ulteriori informazioni, consulta Accesso come utente IAM.

  2. Passare al ruolo abac-project-role. Per ulteriori informazioni, consulta Cambio di un ruolo (console).

  3. Crea una funzione Lambda:

    • In Permissions (Autorizzazioni), scegli Change default execution role (Modifica ruolo di esecuzione predefinito), quindi per Execution role (Ruolo di esecuzione), scegli Use an existing role (Utilizza un ruolo esistente). Scegli lo stesso ruolo di esecuzione che hai usato in Fase 4: Concessione delle autorizzazioni IAM.

    • In Advanced settings (Impostazioni avanzate), seleziona Enable tags (Abilita tag) quindi scegli Add new tag (Aggiungi nuovo tag). In Chiave, inserire project. Non immettere un valore.

  4. Esegui il test della funzione.

  5. Crea una seconda funzione Lambda e aggiungi un tag diverso, ad esempio environment. Questa operazione dovrebbe non riuscire perché la policy ABAC creata in Fase 1: richiesta di tag sulle nuove funzioni consente al principale di creare solo funzioni con tag project.

  6. Crea una terza funzione senza tag. Questa operazione dovrebbe non riuscire perché la policy ABAC creata in Fase 1: richiesta di tag sulle nuove funzioni non consente al principale di creare funzioni senza tag.

Questa strategia di autorizzazione consente di controllare l'accesso senza creare nuove policy per ogni nuovo utente. Per concedere l'accesso a nuovi utenti, è sufficiente concedere loro l'autorizzazione per assumere il ruolo che corrisponde al progetto assegnato.

Fase 8: eliminare le risorse

Per eliminare il ruolo IAM
  1. Aprire la pagina Ruoli della console IAM.

  2. Seleziona il ruolo creato nella fase 5.

  3. Scegli Elimina.

  4. Per confermare l'eliminazione, inserisci il nome del ruolo nel campo di immissione del testo.

  5. Scegli Elimina.

Per eliminare l'utente IAM
  1. Apri la pagina Utenti nella console IAM.

  2. Seleziona l'utente IAM creato nella fase 6.

  3. Scegli Elimina.

  4. Per confermare l'eliminazione, inserisci il nome utente nel campo di immissione del testo.

  5. Scegli Elimina utente.

Per eliminare la funzione Lambda
  1. Aprire la pagina Functions (Funzioni) della console Lambda.

  2. Selezionare la funzione creata.

  3. Scegliere Operazioni, Elimina.

  4. Digita confirm nel campo di immissione testo e scegli Delete (Elimina).

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.