Lambda
Utilisez la stratégie Lambda pour personnaliser ou remplacer la configuration de consignation des activités par défaut pour une API.
Prise en charge des passerelles
| Passerelle | Version de la stratégie |
|---|---|
| DataPower® API Gateway | 1.0.0 |
Cette rubrique explique comment configurer la stratégie dans votre source OpenAPI; pour plus d'informations sur la configuration de la stratégie dans l'interface utilisateur de l'assembly, consultez Lambda.
A propos de
La politique Lambda vous permet de déclencher des fonctions d' AWS Lambda à partir de l'assembly d'une API sans avoir à utiliser Amazon API Gateway. Lorsque vous ajoutez la stratégie à un assemblage d'API, vous pouvez spécifier la fonction Lambda à appeler et fournir des données d'identification pour l'utiliser. Les données d'identification peuvent être un rôle AWS IAM ou une paire ID de clé d'accès/clé d'accès secrète.
- Configurez l'accès à la fonction Lambda dans AWS comme expliqué dans la section Configuration des droits et de la confiance dans AWS de cette rubrique.
- Définissez une stratégie d'API en API Connect utilisant les propriétés de stratégie décrites dans la section Propriétés de cette rubrique.
- La politique Lambda utilise des points de terminaison VPC pour garantir que la communication entre la passerelle et le service Lambda s'effectue via le réseau privé d' AWS.
- Pour plus d'informations sur Lambda et pour obtenir des instructions sur l'utilisation des fonctionnalités de Lambda, consultez la documentation « AWS Lambda ».
Configuration des droits d'accès et de la confiance dans AWS
Utilisez les instructions pour l'option qui correspond le mieux à vos besoins.
- ID de clé d'accès / Clé d'accès secrète
- Indiquez la paire AWS Access Key ID/AWS Secret Access Key d'un compte avec le droit d'appeler une ou plusieurs fonctions Lambda. Les droits de ce compte doivent être aussi limités que possible ; le compte doit être un compte de service avec aucun autre droit que la possibilité d'appeler une ou plusieurs fonctions Lambda. Pour plus d'informations, consultez la documentation intitulée « Politiques IAM basées sur l'identité pour Lambda ».
Pour utiliser l'option d'authentification par identifiant de clé d'accès/clé d'accès secrète, procédez comme suit pour utiliser le service IAM de votre compte et créer un compte de service IAM doté des autorisations nécessaires afin de permettre une communication limitée avec API Connect:
- Connectez-vous à la console de gestion d' AWS, puis ouvrez la console IAM.
- Dans la console AWS IAM, cliquez sur Users dans la liste de navigation, puis sur Add users.
- A l'invite "Set user details", indiquez un nom d'utilisateur (unique dans votre compte AWS ) et sélectionnez Access key-Programmatic access.
Vous pouvez sélectionner l'option d'accès « Mot de passe - Console de gestion d' AWS », mais celle-ci n'est pas obligatoire pour interagir avec API Connect.
Il existe une variété d'options permettant de définir des droits pour le nouveau compte utilisateur. Pour plus d'informations sur l'ajout d'un utilisateur à un groupe d'utilisateurs ou sur l'association directe d'une politique à un utilisateur, consultez le Guide de l'utilisateur de la gestion des identités et des accès d' AWS.
Une méthode simple de définition des droits utilisateur qui respecte le principe du moindre privilège consiste à créer un utilisateur IAM sans droits, puis à ajouter cet utilisateur à la configuration des droits d'une fonction Lambda spécifique, comme illustré dans les étapes suivantes.
- Sur la page "Définir les détails de l'utilisateur", cliquez sur Suivant: Etiquettes sans apporter de modifications au nouveau compte utilisateur.
- Créez les balises souhaitées, puis cliquez sur Next: Review.
- Passez en revue vos paramètres et cliquez sur Créer un utilisateur.
Ignorez l'avertissement
This user has no permissionscar vous affecterez des droits dans les étapes restantes. - Cliquez sur Télécharger .csv pour sauvegarder l' ID de clé d'accès et la clé d'accès secrètedu nouvel utilisateur et les stocker en lieu sûr. Ces valeurs serviront d 'identifiant d'accès (Access Key ID) et de clé secrète d'accès ( AWS ) pour l' AWS lors de la configuration de la politique Lambda de votre API dans API Connect.
- Mettez à jour la fonction Lambda pour fournir des droits au nouvel utilisateur:
- Dans la console Lambda, ouvrez la page Fonctions .
- Sélectionnez la fonction à API Connect exécuter.
- Cliquez sur Configuration.
- Dans la section Instructions de stratégie basées sur les ressources , cliquez sur Ajouter des droits.
- Sélectionnez le compteAWS et ajoutez un ID d'instructionunique.
- Définissez Principal sur l'ARN du nouvel utilisateur.
arn:aws:iam::<AWS_account_ID>:user/<username>, accessible depuis la page . - Définissez l' Action sur
lambda:InvokeFunction. - Cliquez sur Sauvegarder.
Répétez cette étape pour chaque fonction Lambda appelée par le compte utilisateur.
- Supposer ARN de rôle
- Indiquez l'ARN de rôle de présomption AWS d'un rôle avec le droit d'appeler une ou plusieurs fonctions Lambda. Ce rôle doit avoir une configuration spécifique pour la règle d'accréditation qui inclut les paramètres suivants:
Action,Condition,EffectetPrincipal.Les droits d'accès de ce rôle doivent être aussi limités que possible ; le rôle ne doit pas avoir d'autres droits d'accès que la possibilité d'appeler une ou plusieurs fonctions Lambda. Pour plus d'informations, consultez la documentation sur les autorisations Lambda.
Important :Pour les déploiements IWHI : IBM propose des rôles IAM préconfigurés pour les invocations de politiques Lambda. Utilisez le rôle correspondant à votre formule d'abonnement :
- Plan d'essai :
arn:aws:iam::980921740675:role/ibm-apic-iwhi-us-east-1-trial - Formule Standard :
arn:aws:iam::980921740675:role/ibm-apic-iwhi-<region>-stdExemple:
arn:aws:iam::980921740675:role/ibm-apic-iwhi-us-east-1-std
Ces rôles sont associés au compte IWHI AWS (ID de compte : 980921740675) et sont configurés avec les autorisations et les relations de confiance nécessaires pour les invocations Lambda.
Pour utiliser l'option d'authentification « Assume Role ARN » d' AWS, procédez comme suit pour créer une politique et un rôle « AWS » adaptés dans le service IAM de votre compte, afin de permettre une communication restreinte avec API Connect:
- Connectez-vous à la console de gestion d' AWS, puis ouvrez la console IAM.
- Dans la console AWS IAM, cliquez sur Rôles dans la liste de navigation, puis sur Créer un rôle.
- Lorsque vous êtes invité à "Sélectionner une entité digne de confiance", cliquez sur Règle de confiance personnalisée, utilisez l'exemple de code suivant comme guide pour créer la règle de confiance, puis cliquez sur Suivant.
{ "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>" } } } ] }Astuce :Pour les déploiements IWHI : lors de la configuration de la politique de confiance pour IWHI, utilisez l'ID du compte d' AWS IWHI (980921740675) et le format de rôle IWHI approprié dans l'ARN du principal :
- Plan d'essai :
arn:aws:iam::980921740675:role/ibm-apic-iwhi-us-east-1-trial - Formule Standard :
arn:aws:iam::980921740675:role/ibm-apic-iwhi-<region>-std(par exemple,ibm-apic-iwhi-us-east-1-std)
Les rôles IWHI fournis par l' IBM nt déjà configurés avec les relations de confiance appropriées.
Remplacez les variables suivantes par vos propres valeurs:<apic_region>est la région dans laquelle vous avez déployé votre instance de service API Connect ; par exemple:us-east-a.<apic_provider_org_ID>est API Connect l'identifiant de votre organisme prestataire.Pour déterminer le nom de votre organisation de type fournisseur:- Connectez-vous à API Connect en utilisant
--ssol'option; par exemple :./apic login \ --sso \ --context provider \ --server platform-api.<apic_region>.example.comoù
<apic_region>est la région dans laquelle vous avez déployé votre instance de service API Connect . - Exécutez la commande suivante pour obtenir API Connect l'identifiant de votre organisme prestataire :
./apic orgs:list \ --my \ --fields name,id \ --format yaml \ --output - \ --server platform-api.<apic_region>.example.comoù
<apic_region>est la région dans laquelle vous avez déployé votre instance de service API Connect .La réponse renvoie une liste de noms d'organisation de type fournisseur, avec l'ID correspondant à chaque nom.
- Connectez-vous à API Connect en utilisant
- Plan d'essai :
- Lorsque vous êtes invité à "Ajouter des droits", choisissez une méthode pour ajouter une règle au nouveau rôle:
- Associez la règle
AWSLambdaRole:La politique
AWSLambdaRoleest gérée par AWS et autorise l'actionlambda:InvokeFunctionrequise. La portée de la règle s'applique à toutes les fonctions Lambda du compte AWS en cours. - Créez votre propre stratégie personnalisée qui autorise l'action
lambda:InvokeFunction:Si vous souhaitez utiliser une règle de portée plus étroite, vous pouvez créer la règle lors de la création du nouveau rôle ou créer la règle à l'avance et l'associer lors de la création du nouveau rôle. Pour créer une règle, cliquez sur Règlesdans la liste de navigation de la console IAM, puis cliquez sur Créer une règle.
La règle que vous utilisez doit autoriser l'actionlambda:InvokeFunctionpour la ou les ressources de fonction Lambda souhaitées. L'exemple de règle suivant est sectorisé à une seule fonction 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>" } ] }Remplacez les variables suivantes par vos propres valeurs:<AWS_account_ID>Il s'agit de l'identifiant du API Connect compte de production de l' AWS. Utilisez la valeur suivante :623947394061<lambda_function_name>est le nom ou le nom de ressource Amazon (ARN) de la fonction AWS Lambda à exécuter.
Pour plus d'informations sur les autres structures de stratégie, consultez le Guide de l'utilisateur de la gestion des identités et des accès d' AWS.
- Associez la règle
- Indiquez un nom de rôle, une descriptionet des balises.
- Cliquez sur Créer un rôle.
Lorsque vous configurez la politique Lambda de votre API dans API Connect[...], indiquez l'ARN du nouveau rôle dans le champ « ARN du rôle à assumer » ( AWS ).
- Plan d'essai :
Propriétés
Le tableau suivant répertorie les propriétés des stratégies, indique si une propriété est nécessaire, définit les valeurs d'entrée et par défaut valides et précise le type de données des valeurs.
| Propriété | Obligatoire | Descriptif | Type de données |
|---|---|---|---|
| title | Non | Titre de la stratégie. La valeur par défaut est lambda. |
chaîne |
| description | Non | Description de la stratégie. | chaîne |
| AWS Access Key ID | Oui | AWS Les clés d'accès sont des données d'identification à long terme pour un utilisateur AWS IAM. Obligatoire si AWS
Assume Role ARN n'est pas fourni à la place. Pour des instructions sur la création de la paire de clés d'accès dans AWS, voir ID de clé d'accès/clé d'accès secrète dans cette rubrique. |
chaîne |
| AWS Secret Access Key | Oui | Clé d'accès secrète qui correspond au AWS Access Key IDspécifié. | chaîne |
| AWS Assume Role ARN | Oui | L'ARN du rôle IAM « AWS » que API Connect l'utilisateur assumera lors de l'exécution de la fonction « AWS Lambda ». Obligatoire si AWS Access Key ID et ne AWS Secret Access
Key sont pas fournis à la place. Pour des instructions sur la création du rôle Assume dans AWS, voir Assume Role ARN dans cette rubrique. |
chaîne |
| function | Oui | Le nom ou Amazon Resource Name (ARN) de la fonction d' AWS Lambda e à exécuter, en utilisant l'un des formats suivants :
Pour plus d'informations, consultez la section |
chaîne |
| region | Oui | Région AWS dans laquelle la fonction Lambda est hébergée. | chaîne |
| qualifier | Non | Alias ou version de la fonction Lambda que vous souhaitez exécuter. Pour plus d'informations, consultez la section |
chaîne |