El rol de IAM permite que la función Lambda acceda a otros servicios de AWS dentro de la cuenta de AWS. Por otro lado, la política basada en recursos se adjunta a la función Lambda para permitir que otros servicios de AWS dentro de las mismas o diferentes cuentas accedan a la función Lambda. En este blog, veremos cómo podemos administrar los permisos de Lambda aplicando las políticas basadas en IAM y recursos."
Gestión de permisos utilizando el rol de IAM
Por defecto, el papel IAM adjunto a la función Lambda solo tiene acceso para poner los registros en los registros de CloudWatch. Siempre puede actualizar el rol de ejecución para agregarle más permisos. Si desea acceder al cubo S3 o desea realizar alguna acción en un objeto de cubo S3, necesita el acceso al nivel de objeto S3 y el nivel de objeto S3 en el rol de ejecución de Lambda. En esta sección del blog, actualizaremos los permisos de rol de IAM para permitir que Lambda interactúe con el cubo S3.
En primer lugar, navegue a la consola AWS Lambda y haga clic en la función Lambda para la que desea actualizar el rol de ejecución para. Clickea en el configuración pestaña en la consola de funciones lambda. Luego, desde el panel lateral izquierdo, seleccione el Permisos pestaña, y mostrará el papel de ejecución de Lambda allí.
En el rol de IAM, puede agregar una política administrada por el cliente o administrada por el cliente, o puede agregar una política en línea para otorgar a la función LAMBDA permisos necesarios para interactuar con otros servicios de AWS.
Administrar permiso utilizando políticas basadas en recursos
Las políticas basadas en recursos para la función Lambda proporcionan permisos a otros servicios de AWS dentro de la misma o diferente cuenta AWS para acceder a la función Lambda. Por defecto, no hay una política basada en recursos adjunta automáticamente a la función Lambda, por lo que ningún servicio AWS puede acceder a la función Lambda. Puede agregar y eliminar las políticas basadas en recursos en cualquier momento a su función Lambda. En este blog, agregaremos una política basada en recursos a la función Lambda, que permite a S3 invocar la función Lambda.
Para agregar una política basada en recursos a la función lambda, primero, haga clic en la función lambda y vaya a la permisos pestaña de la función lambda.
En el permisos pestaña, desplácese hacia abajo y encontrará una sección para las políticas basadas en recursos. Clickea en el Agregar permisos botón en el Declaraciones de políticas basadas en recursos Sección de la consola para agregar una nueva política basada en recursos a la función Lambda.
En la política basada en recursos, hay tres tipos de recursos que puede otorgar permiso para la función Lambda.
Para esta demostración, configuraremos un cubo S3 de la misma cuenta para invocar la función lambda cada vez que se cargue un nuevo objeto S3. Para esta configuración, seleccione el Servicio AWS y luego seleccione el S3 Como el servicio. Ingrese la ID de cuenta de AWS en la que existe el cubo S3, yo.mi., su propia ID de cuenta de AWS. Después de proporcionar la ID de cuenta, proporcione el ARN del cubo S3, que tendrá permiso para invocar la función Lambda y luego seleccionar Lambda: InvokeFunction como acción como vamos a invocar la función lambda desde el cubo S3.
Después de agregar toda esta información, haga clic en el botón Guardar para agregar la política basada en recursos a la función Lambda. También puede echar un vistazo al formato JSON de la política basada en recursos adjunta a la función Lambda.
De la sección Política basada en recursos en el permisos pestaña, haga clic en la política basada en recursos recién creados, y mostrará la política en formato JSON.
Eliminación de la política basada en recursos
Puede eliminar la política basada en recursos cuando además no necesita permitir que otros servicios de AWS accedan a la función Lambda. Mantener la política basada en recursos adjunta a una función Lambda puede ser perjudicial, ya que otorga a otros servicios de AWS acceso a la función Lambda.
Para eliminar la política basada en recursos, vaya a la declaraciones basadas en recursos Sección de la permisos pestaña. Seleccione la política basada en recursos que desea eliminar y haga clic en el Borrar botón, y eliminará la política basada en recursos de la función Lambda.
Solicitará confirmación antes de eliminar la política basada en recursos, y puede confirmar la eliminación haciendo clic en el borrar botón.
Conclusión
En este blog, hemos estudiado cómo administrar el permiso con la función AWS Lambda. Hay dos tipos de permisos que se pueden asignar a Lambda; Uno son los permisos basados en roles de Lambda IAM que permite a AWS Lambda acceder a otros servicios de AWS, y el otro son los permisos basados en recursos que permiten que otros servicios accedan a la función Lambda. En este blog, estudiamos la diferencia entre ambos tipos de políticas y vimos cómo podríamos actualizar ambas políticas para otorgar permisos.