Configurazione delle policy IAM per i punti di accesso Object Lambda - Amazon Simple Storage Service

Configurazione delle policy IAM per i punti di accesso Object Lambda

I punti di accesso Amazon S3 supportano le policy delle risorse AWS Identity and Access Management (IAM) che consentono di controllare l'utilizzo del punto di accesso per risorsa, utente o altre condizioni. È possibile controllare l'accesso tramite una policy di risorse opzionale sul punto di accesso Object Lambda o una policy di risorse sul punto di accesso di supporto. Per esempi dettagliati, consulta le sezioni Tutorial: trasformazione dei dati per l'applicazione con S3 Object Lambda e Tutorial: rilevamento e oscuramento dei dati PII con S3 Object Lambda e Amazon Comprehend.

Per utilizzare i punti di accesso Object Lambda, le seguenti quattro risorse devono disporre delle seguenti autorizzazioni:

  • Utente o ruolo IAM.

  • Il bucket e il relativo punto di accesso standard associato Quando utilizzi i punti di accesso Object Lambda, questo punto di accesso standard è noto come punto di accesso di supporto.

  • Il punto di accesso Object Lambda.

  • La funzione AWS Lambda.

Importante

Prima di salvare la policy, assicurati di risolvere gli avvisi di sicurezza, gli errori, gli avvisi generali e i suggerimenti da AWS Identity and Access Management Access Analyzer. IAM Access Analyzer esegue controlli della policy per convalidarla in rapporto alla sintassi della policy e alle best practice di IAM. Questi controlli generano risultati e forniscono suggerimenti utili per aiutarti a creare policy funzionali e conformi alle best practice per la sicurezza.

Per ulteriori informazioni sulla convalida delle policy tramite IAM Access Analyzer, consulta Convalida delle policy di IAM Access Analyzer nella Guida per l'utente di IAM. Per visualizzare un elenco di avvisi, errori e suggerimenti restituiti da IAM Access Analyzer, consultare Riferimento ai controlli delle policy IAM Access Analyzer.

In questi esempi di policy si presuppone di disporre delle seguenti risorse:

  • Un bucket Amazon S3 con il seguente nome della risorsa Amazon (ARN):

    arn:aws:s3:::DOC-EXAMPLE-BUCKET1

  • Un punto di accesso standard Amazon S3 su questo bucket con il seguente ARN:

    arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point

  • Un punto di accesso Object Lambda con il seguente ARN:

    arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap

  • Una funzione AWS Lambda con il seguente ARN:

    arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction

Nota

Se utilizzi una funzione Lambda dal tuo account, devi includere la versione della funzione nell'istruzione della policy. Nel seguente ARN di esempio, la versione è indicata da $LATEST:

arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:$LATEST

Per ulteriori informazioni sulle versioni delle funzioni Lambda, consulta Versioni delle funzioni Lambda nella Guida per gli sviluppatori di AWS Lambda.

Esempio : policy di bucket che delega il controllo degli accessi ai punti di accesso standard

Il seguente esempio di policy di bucket S3 delega il controllo degli accessi di un bucket ai relativi punti di accesso standard. Questa policy consente l'accesso completo a tutti i punti di accesso di proprietà dell'account del proprietario del bucket. Pertanto, tutto l'accesso a questo bucket è controllato dalle policy associate ai punti di accesso. Gli utenti possono eseguire la lettura dal bucket solo mediante un punto di accesso; ciò significa che le operazioni possono essere richiamate solo tramite i punti di accesso. Per ulteriori informazioni, consulta Delegazione del controllo di accesso agli access point.

{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS":"account-ARN"}, "Action" : "*", "Resource" : [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }
Esempio : policy di bucket che concede a un utente le autorizzazioni necessarie per utilizzare un punto di accesso Object Lambda

La seguente policy IAM concede a un utente le autorizzazioni per la funzione Lambda, il punto di accesso standard e il punto di accesso Object Lambda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLambdaInvocation", "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:$LATEST", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "s3-object-lambda.amazonaws.com" ] } } }, { "Sid": "AllowStandardAccessPointAccess", "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "s3-object-lambda.amazonaws.com" ] } } }, { "Sid": "AllowObjectLambdaAccess", "Action": [ "s3-object-lambda:Get*", "s3-object-lambda:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap" } ] }

Abilitazione delle autorizzazioni per i ruoli di esecuzione Lambda

La funzione Lambda richiede l'autorizzazione per inviare dati a S3 Object Lambda quando vengono effettuate richieste GET a un punto di accesso Object Lambda. Per fornire questa autorizzazione, abilita l'autorizzazione s3-object-lambda:WriteGetObjectResponse sul ruolo di esecuzione della funzione Lambda. Puoi creare un nuovo ruolo di esecuzione o aggiornare un ruolo esistente.

Nota

La funzione richiede l'autorizzazione s3-object-lambda:WriteGetObjectResponse solo se stai effettuando una richiesta GET.

Per creare un ruolo di esecuzione nella console IAM
  1. Aprire la console IAM all’indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione a sinistra seleziona Ruoli.

  3. Scegli Create role (Crea ruolo).

  4. In Common use cases (Casi di utilizzo comuni), scegliere Lambda.

  5. Seleziona Next (Successivo).

  6. Nella pagina Add permissions (Aggiungi autorizzazioni), cerca la policy gestita AWS AmazonS3ObjectLambdaExecutionRolePolicy, quindi seleziona la casella di controllo accanto al nome della policy.

    Questa politica dovrebbe contenere l'operazione s3-object-lambda:WriteGetObjectResponse.

  7. Seleziona Next (Successivo).

  8. Nella pagina Name, review, and create (Denomina, rivedi e crea), in Role name (Nome ruolo) immetti s3-object-lambda-role.

  9. (Facoltativo) Aggiungi una descrizione e i tag per questo ruolo.

  10. Scegli Create role (Crea ruolo).

  11. Applica il nuovo s3-object-lambda-role quale ruolo di esecuzione della funzione Lambda. Questa operazione può essere eseguita durante o dopo la creazione della funzione Lambda nella console Lambda.

Per ulteriori informazioni sui ruoli di esecuzione, consulta la sezione Ruolo di esecuzione Lambda nella Guida per gli sviluppatori di AWS Lambda.

Utilizzo delle chiavi di contesto con i punti di accesso Object Lambda

S3 Object Lambda valuterà le chiavi di contesto come s3-object-lambda:TlsVersion o s3-object-lambda:AuthType in base alla connessione o alla firma della richiesta. Tutte le altre chiavi di contesto, ad esempio s3:prefix, vengono valutate da Amazon S3.