Global outage event
If you're experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Come posso risolvere l'errore "Lambda does not have permission to access the ECR image" per un'immagine di container della funzione Lambda?
Ho provato a creare una funzione AWS Lambda con un'immagine di container. Tuttavia, ho ricevuto un errore di autorizzazione da Amazon Elastic Container Registry (Amazon ECR) simile al seguente: "Lambda does not have permission to access the ECR image. Check the ECR permissions"
Breve descrizione
Per creare una funzione Lambda da un'immagine di container, devi configurare policy AWS Identity and Access Management (AWS IAM) che consentano l'accesso. L'utente o il ruolo IAM che crea la funzione e il repository Amazon ECR devono avere autorizzazioni che consentano l'accesso.
Nota: prima di creare la funzione Lambda, crea un'immagine di container Lambda. Quindi carica l'immagine in un archivio Amazon ECR.
Risoluzione
Segui i passaggi per impostare un'istruzione di policy di un repository privato in Amazon ECR. Quindi aggiungi un'istruzione di policy per creare una funzione Lambda dall'URI dell'immagine Amazon ECR nello stesso account AWS o multi-account.
Nota: è consigliabile concedere autorizzazioni con privilegi minimi tramite le policy IAM.
Aggiungi un'istruzione di policy nello stesso account
Nella seguente policy, le autorizzazioni dell’archivio Amazon ECR devono consentire l'accesso alle azioni API ecr:BatchGetImage e ecr:GetDownloadUrlForLayer sul servizio Lambda.
Esempio di policy relativa all’archivio Amazon ECR:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LambdaECRImageRetrievalPolicy", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }
Importante: se il repository Amazon ECR non include le autorizzazioni precedenti, Lambda le aggiunge automaticamente. Lambda può aggiungere autorizzazioni solo se il principale che chiama Lambda ha le autorizzazioni ecr:getRepositoryPolicy e ecr:setRepositoryPolicy. Per ulteriori informazioni, consulta Autorizzazioni Amazon ECR.
Aggiungi un'istruzione di policy multi-account
L'utente o il ruolo che crea o aggiorna la funzione Lambda deve avere le autorizzazioni ecr:BatchGetImage e ecr:GetDownloadUrlForLayer per l'archivio ECR.
Nella seguente policy, le funzioni Lambda vengono create nell'account 111111111111, mentre il repository Amazon ECR si trova nell'account 222222222222.
Esempio di policy IAM che consente all'utente o al ruolo di accedere al repository Amazon ECR multi-account:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECRRepositoryAccessPermissions", "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:us-east-1:222222222222:repository/your-repository" } ] }
Nota: sostituisci arn:aws:ecr:us-east-1:222222222222:repository/your-repository con il nome della risorsa Amazon (ARN) del tuo del repository ECR.
Nel seguente esempio, l'istruzione CrossAccountPermission consente all'account 111111111111 di creare e aggiornare funzioni Lambda che utilizzano immagini del repository Amazon ECR.
Esempio di policy multi-account del repository Amazon ECR che consente alla funzione Lambda di recuperare l'immagine di container:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountPermission", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:root" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] }, { "Sid": "LambdaECRImageCrossAccountRetrievalPolicy", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Condition": { "StringLike": { "aws:sourceARN": "arn:aws:lambda:us-east-1:111111111111:your-function:*" } } } ] }
Nota: sostituisci arn:aws:ecr:us-east-1:222222222222:repository/your-repository con l'ARN della tua funzione Lambda.
Per ulteriori informazioni, consulta Autorizzazioni multi-account Amazon ECR.
Informazioni correlate
Introducing cross-account Amazon ECR access for AWS Lambda (Accesso multi-account di Amazon ECR per AWS Lambda)
Come posso risolvere i problemi delle autorizzazioni con Lambda?
- Argomenti
- ServerlessCompute
- Tag
- AWS Lambda
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata 4 anni fa