Lambda
Utilice la política Lambda para personalizar o alterar temporalmente la configuración de registro de actividad predeterminada para una API.
Soporte de pasarela
| Pasarela | Versión de política |
|---|---|
| DataPower® API Gateway | 1.0.0 |
En este tema se describe cómo configurar la política en el origen de OpenAPI ; para obtener detalles sobre cómo configurar la política en la interfaz de usuario de ensamblaje, consulte Lambda.
Acerca de
La política Lambda le permite desencadenar funciones Lambda de AWS desde dentro del ensamblaje de una API sin necesidad de utilizar la API Gatewayde Amazon. Al añadir la política a un ensamblaje de API, puede especificar la función Lambda para invocar y proporcionar credenciales para utilizarla. Las credenciales pueden ser un rol de IAM de AWS o un par de ID de clave de acceso/clave de acceso secreta.
- Configure el acceso a la función Lambda en AWS tal como se explica en la sección Configuración de permisos y confianza en AWS de este tema.
- Define una política de API en API Connect utilizando las propiedades de la política en la sección Propiedades de este tema.
- La política de Lambda utiliza puntos finales de VPC para garantizar que la comunicación desde el gateway al servicio de Lambda se realiza a través de la red troncal privada AWS.
- Para obtener información sobre Lambda e instrucciones para utilizar las características de Lambda, consulte la documentación deAWS Lambda.
Configuración de permisos y confianza en AWS
Utilice las instrucciones para la opción que mejor se adapte a sus necesidades.
- ID de clave de acceso/Clave de acceso secreta
- Proporcione el par de claves de acceso secretas AWS ID de clave de acceso/AWS de una cuenta con permiso para invocar una o más funciones de Lambda. Los permisos de esta cuenta deben tener el ámbito más estrecho posible; la cuenta debe ser una cuenta de servicio sin más permisos que la posibilidad de invocar una o más funciones de Lambda. Para obtener más información, consulte la documentación Políticas de IAM basadas en identidades para Lambda.
Para utilizar la opción de autenticación Access Key ID/Secret Access Key, complete los siguientes pasos para utilizar el servicio IAM de su cuenta y cree una cuenta de servicio IAM con los permisos adecuados para facilitar la comunicación limitada con API Connect:
- Inicie sesión en la consola de administración de AWS y abra la consola IAM.
- En la consola de AWS IAM, pulse Usuarios en la lista de navegación y, a continuación, pulse Añadir usuarios.
- Cuando se le solicite "Establecer detalles de usuario", proporcione un Nombre de usuario (exclusivo en su cuenta de AWS ) y seleccione Clave de acceso-Acceso programático.
Puede seleccionar la opción Contraseña - AWS Acceso a la consola de administración, pero no es necesaria para interactuar con API Connect.
Existen diversas opciones para definir permisos para la nueva cuenta de usuario. Consulte la Guía del usuario deAWS Identity and Access Management para obtener información sobre cómo añadir el usuario a un grupo de usuarios o adjuntar una política directamente al usuario.
Un método sencillo para definir los permisos de usuario que se ajusta al principio de menor privilegio es crear un usuario de IAM sin permisos y, a continuación, añadir dicho usuario a la configuración de permisos de una función Lambda específica, tal como se muestra en los pasos siguientes.
- En la página "Establecer detalles de usuario", pulse Siguiente: Etiquetas sin realizar ningún cambio en la nueva cuenta de usuario.
- Cree las Etiquetas deseadas y, a continuación, pulse Siguiente: Revisar.
- Revise los valores y pulse Crear usuario.
Ignore el aviso de que
This user has no permissionsporque asignará permisos en los pasos restantes. - Pulse Descargar .csv para guardar el ID de clave de acceso y la clave de acceso secretadel nuevo usuario y almacenarlos en un lugar seguro. Estos valores se utilizarán como AWS Access Key ID y AWS Secret Access Key al configurar la política Lambda de tu API en API Connect.
- Actualice la función Lambda para proporcionar permisos para el nuevo usuario:
- En la consola de Lambda, abra la página Funciones .
- Selecciona la función que API Connect invocará.
- Pulse Configuración.
- En la sección Sentencias de política basadas en recursos , pulse Añadir permisos.
- Seleccione Cuenta deAWS y añada un ID de sentenciaexclusivo.
- Establezca Principal en el ARN del nuevo usuario.
arn:aws:iam::<AWS_account_ID>:user/<username>, available on the page. - Establezca la Acción en
lambda:InvokeFunction. - Pulse Guardar.
Repita este paso para cada función de Lambda que invoque la cuenta de usuario.
- Asumir rol ARN
- Proporcione el ARN de rol de consumo de AWS de un rol con permiso para invocar una o más funciones de Lambda. Este rol debe tener una configuración específica para la política de confianza que incluya los parámetros siguientes:
Action,Condition,EffectyPrincipal.Los permisos de este rol deben tener un ámbito lo más restringido posible; el rol no debe tener más permisos que la capacidad de invocar una o más funciones de Lambda. Para más información, consulte la documentación sobre permisos Lambda.
Para utilizar la opción de autenticación AWS Assume Role ARN, complete los siguientes pasos para crear una AWS adecuados con el servicio IAM de su cuenta para facilitar la comunicación limitada con API Connect:
- Inicie sesión en la consola de administración de AWS y abra la consola IAM.
- En la consola de AWS IAM, pulse Roles en la lista de navegación y, a continuación, pulse Crear rol.
- Cuando se le solicite "Seleccionar entidad de confianza", pulse Política de confianza personalizada, utilice el siguiente ejemplo de código como guía para crear la política de confianza y, a continuación, pulse Siguiente.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::623947394061:role/ibm-apiconnect-<apic_region>" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<apic_provider_org_ID>" } } } ] }Sustituya las variables siguientes por sus propios valores:<apic_region>es la región donde ha desplegado la instancia de servicio de API Connect ; por ejemplo:us-east-a.<apic_provider_org_ID>es el API Connect ID de su organización proveedora.Para determinar el nombre de la organización de proveedores:- Inicie sesión en API Connect utilizando la opción
--sso; por ejemplo:./apic login \ --sso \ --context provider \ --server platform-api.<apic_region>.example.comdonde
<apic_region>es la región donde ha desplegado la instancia de servicio de API Connect . - Ejecute el siguiente comando para obtener el API Connect ID de su organización proveedora:
./apic orgs:list \ --my \ --fields name,id \ --format yaml \ --output - \ --server platform-api.<apic_region>.example.comdonde
<apic_region>es la región donde ha desplegado la instancia de servicio de API Connect .La respuesta devuelve una lista de nombres de organización de proveedores, con el ID correspondiente para cada nombre.
- Inicie sesión en API Connect utilizando la opción
- Cuando se le solicite "Añadir permisos", elija un método para añadir una política al nuevo rol:
- Conecte la política
AWSLambdaRole:La política
AWSLambdaRoleestá gestionada por AWS y permite la acciónlambda:InvokeFunctionnecesaria. El ámbito de la política se aplica a todas las funciones de Lambda en la cuenta AWS actual. - Cree su propia política personalizada que permita la acción
lambda:InvokeFunction:Si desea utilizar una política con un ámbito más estricto, puede crear la política al crear el nuevo rol, o crear la política por adelantado y conectarla al crear el nuevo rol. Para crear una política, pulse Políticasen la lista de navegación de la consola de IAM y, a continuación, pulse Crear política.
La política que utilice debe permitir la acciónlambda:InvokeFunctionpara el recurso o recursos de la función Lambda que desee. La siguiente política de ejemplo se circunscribe a una única función Lambda:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:<AWS_account_ID>:function:<lambda_function_name>" } ] }Sustituya las variables siguientes por sus propios valores:<AWS_account_ID>es el API Connect AWS ID de cuenta de producción -- utilice el siguiente valor:623947394061<lambda_function_name>es el nombre o nombre de recurso de Amazon (ARN) de la función Lambda AWS que se va a ejecutar.
Para obtener información sobre estructuras de políticas alternativas, consulte la Guía del usuario deAWS Identity and Access Management.
- Conecte la política
- Proporcione un Nombre de rol, una Descripcióny algunas Etiquetas.
- Pulse Crear rol.
Cuando configure la política Lambda de su API en API Connect, proporcione el ARN del nuevo rol como valor para el campo AWS Assume Role ARN.
Propiedades
En la tabla siguiente se listan las propiedades de política, se indica si se requiere una propiedad, y se especifica los valores válidos y predeterminados para la entrada, así como el tipo de datos de los valores.
| Propiedad | Obligatorio | Descripción | Tipo de datos |
|---|---|---|---|
| title | Nee | El título de la política. El valor predeterminado es lambda. |
serie |
| description | Nee | Una descripción de la política. | serie |
| AWS Access Key ID | Sí | AWS Las claves de acceso son credenciales a largo plazo para un usuario de AWS IAM. Es necesario si no se proporciona AWS
Assume Role ARN en su lugar. Para obtener instrucciones sobre cómo crear el par de claves de acceso en AWS, consulte ID de clave de acceso/Clave de acceso secreta en este tema. |
serie |
| AWS Secret Access Key | Sí | La clave de acceso secreta que corresponde al AWS Access Key IDespecificado. | serie |
| AWS Assume Role ARN | Sí | El ARN de la AWS Función IAM que API Connect asumirá al ejecutar la AWS función Lambda. Obligatorio si no se proporciona AWS Access Key ID y AWS Secret Access
Key en su lugar. Para obtener instrucciones sobre cómo crear el rol Assume en AWS, consulte Assume Role ARN en este tema. |
serie |
| function | Sí | El nombre o nombre de recurso de Amazon (ARN) de la función de Lambda AWS que se va a ejecutar, utilizando uno de los formatos siguientes:
Para obtener más información, consulte |
serie |
| region | Sí | La región AWS donde se aloja la función Lambda. | serie |
| qualifier | Nee | El alias o versión de la función Lambda que desea ejecutar. Para obtener más información, consulte |
serie |