Trabajar con políticas de IAM basadas en recursos en Lambda - AWS Lambda

Trabajar con políticas de IAM basadas en recursos en Lambda

Lambda admite políticas de permisos basadas en recursos para las funciones y capas de Lambda. Puede usar políticas basadas en recursos para conceder acceso a otras cuentas de AWS, organizaciones o servicios. Las políticas basadas en recursos se aplican a una sola función, versión, alias o versión de capa.

Console
Visualización de la política basada en recursos de una función
  1. Abra la página de Funciones en la consola de Lambda.

  2. Elija una función.

  3. Elija Configuración y, a continuación, seleccione Permisos.

  4. Desplácese hacia abajo hasta Directiva basada en recursos y, a continuación, elija Ver documento de directiva. La política basada en recursos muestra los permisos que se aplican cuando otra cuenta o servicio de AWS intenta acceder a la función. En el ejemplo siguiente se muestra una instrucción que permite a Amazon S3 invocar una función denominada my-function para un bucket denominado amzn-s3-demo-bucket en la cuenta 123456789012.

    ejemplo Política basada en recursos
    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "lambda-allow-s3-my-function", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } } } ] }
AWS CLI

Para ver la política basada en recursos de una función, utilice el comando get-policy.

aws lambda get-policy \ --function-name my-function \ --output text

Debería ver los siguientes datos de salida:

{"Version":"2012-10-17","Id":"default","Statement":[{"Sid":"sns","Effect":"Allow","Principal":{"Service":"s3.amazonaws.com"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function","Condition":{"ArnLike":{"AWS:SourceArn":"arn:aws:sns:us-east-2:123456789012:lambda*"}}}]} 7c681fc9-b791-4e91-acdf-eb847fdaa0f0

Para las versiones y los alias, añada el número de versión o el alias al nombre de la función.

aws lambda get-policy --function-name my-function:PROD

Para eliminar permisos de una función, utilice remove-permission.

aws lambda remove-permission \ --function-name example \ --statement-id sns

Utilice el comando get-layer-version-policy para ver los permisos de una capa.

aws lambda get-layer-version-policy \ --layer-name my-layer \ --version-number 3 \ --output text

Debería ver los siguientes datos de salida:

b0cd9796-d4eb-4564-939f-de7fe0b42236 {"Sid":"engineering-org","Effect":"Allow","Principal":"*","Action":"lambda:GetLayerVersion","Resource":"arn:aws:lambda:us-west-2:123456789012:layer:my-layer:3","Condition":{"StringEquals":{"aws:PrincipalOrgID":"o-t194hfs8cz"}}}"

Se utiliza remove-layer-version-permission para quitar instrucciones de la política.

aws lambda remove-layer-version-permission --layer-name my-layer --version-number 3 --statement-id engineering-org

Acciones de la API admitidas

Las siguientes acciones de la API de Lambda admiten las políticas basadas en recursos: