Comment gérer les autorisations avec la fonction AWS Lambda

Comment gérer les autorisations avec la fonction AWS Lambda
«Lorsqu'une fonction lambda est créée, un rôle par défaut est créé et attaché à lui. Ce rôle iam est appelé le rôle d'exécution et a des autorisations limitées pour mettre les journaux lambda dans les journaux CloudWatch. De plus, aucun autre service AWS n'a la permission d'invoquer la fonction lambda par défaut. Afin de gérer ces autorisations, vous devez soit mettre à jour le rôle IAM, soit la politique basée sur les ressources.

Le rôle IAM permet à la fonction lambda d'accéder à d'autres services AWS dans le compte AWS. D'un autre côté, la politique basée sur les ressources est attachée à la fonction lambda pour permettre à d'autres services AWS dans les mêmes comptes ou différents pour accéder à la fonction lambda. Dans ce blog, nous verrons comment nous pouvons gérer les autorisations Lambda en appliquant les politiques IAM et basées sur les ressources."

Gestion des autorisations en utilisant le rôle IAM

Par défaut, le rôle IAM attaché à la fonction lambda n'a accès que pour mettre les journaux aux journaux CloudWatch. Vous pouvez toujours mettre à jour le rôle d'exécution pour y ajouter d'autres autorisations. Si vous souhaitez accéder au seau S3 ou si vous souhaitez effectuer une action sur un objet de godet S3, vous avez besoin de l'accès au niveau S3 et au niveau de l'objet S3 dans le rôle d'exécution lambda. Dans cette section du blog, nous mettrons à jour les autorisations de rôle IAM pour permettre à Lambda d'interagir avec le seau S3.

Tout d'abord, accédez à la console AWS Lambda et cliquez sur la fonction Lambda pour laquelle vous souhaitez mettre à jour le rôle d'exécution pour. Clique sur le configuration Onglet sur la console de la fonction lambda. Ensuite, à partir du panneau latéral gauche, sélectionnez le Autorisation Onglet, et il affichera le rôle d'exécution de Lambda là-bas.

Dans le rôle IAM, soit vous pouvez ajouter une politique gérée par AWS ou gérée par le client, soit vous pouvez ajouter une politique en ligne pour accorder la fonction Lambda nécessaire pour interagir avec d'autres services AWS.

Gestion de l'autorisation à l'aide d'une politique basée sur les ressources

Les politiques basées sur les ressources pour la fonction lambda fournissent des autorisations à d'autres services AWS dans le même compte AWS ou différent pour accéder à la fonction lambda. Par défaut, il n'y a pas de stratégie basée sur les ressources attachée automatiquement à la fonction lambda, donc aucun service AWS ne peut accéder à la fonction lambda. Vous pouvez ajouter et supprimer les politiques basées sur les ressources à chaque fois à votre fonction lambda. Dans ce blog, nous ajouterons une politique basée sur les ressources à la fonction lambda, qui permet à S3 d'invoquer la fonction lambda.

Afin d'ajouter une politique basée sur les ressources à la fonction lambda, cliquez d'abord sur la fonction lambda et accédez au autorisation Onglet de la fonction lambda.

Dans le autorisation Onglet, faites défiler vers le bas et vous trouverez une section pour les politiques basées sur les ressources. Clique sur le Ajouter les autorisations bouton dans le Énoncés de politique basés sur les ressources Section de la console pour ajouter une nouvelle politique basée sur les ressources à la fonction lambda.

Dans la politique basée sur les ressources, il existe trois types de ressources que vous pouvez accorder la permission de la fonction lambda.

  • Accorder la permission aux services AWS
  • Accorder la permission à un autre compte AWS
  • Accorder les autorisations pour invoquer la fonction Lambda via URL

Pour cette démo, nous configurerons un seau S3 du même compte pour invoquer la fonction lambda chaque fois qu'un nouvel objet S3 est téléchargé. Pour cette configuration, sélectionnez le Service AWS puis sélectionnez le S3 Comme le service. Entrez l'ID de compte AWS dans lequel le seau S3 existe, i.e., Votre propre ID de compte AWS. Après avoir fourni l'ID de compte, fournissez l'ARN du seau S3, qui aura la permission d'invoquer la fonction lambda, puis de sélectionner lambda: invoquer Aussi action que nous allons invoquer la fonction lambda du seau S3.

Après avoir ajouté toutes ces informations, cliquez sur le bouton Enregistrer pour ajouter la stratégie basée sur les ressources à la fonction Lambda. Vous pouvez également consulter le format JSON de la politique basée sur les ressources attachée à la fonction lambda.

De la section de politique basée sur les ressources dans le autorisation onglet, cliquez sur la politique de ressources nouvellement créée, et il affichera la politique au format JSON.

Supprimer la politique basée sur les ressources

Vous pouvez supprimer la politique basée sur les ressources lorsque vous n'avez pas besoin de permettre à d'autres services AWS d'accéder à la fonction Lambda. Garder la politique basée sur les ressources attachée à une fonction lambda peut être nocive car elle accorde d'autres services AWS à l'accès à la fonction lambda.

Afin de supprimer la politique basée sur les ressources, accédez au déclarations basées sur les ressources Section de la autorisation languette. Sélectionnez la stratégie basée sur les ressources que vous souhaitez supprimer et cliquez sur le Supprimer bouton, et il supprimera la politique basée sur les ressources de la fonction lambda.

Il demandera une confirmation avant de supprimer la politique basée sur les ressources, et vous pouvez confirmer la suppression en cliquant sur le supprimer bouton.

Conclusion

Dans ce blog, nous avons étudié comment gérer la permission avec la fonction AWS Lambda. Il existe deux types d'autorisations qui peuvent être affectées à Lambda; L'une est les autorisations basées sur les rôles de Lambda IAM qui permettent à AWS Lambda d'accéder à d'autres services AWS, et l'autre est des autorisations basées sur les ressources qui permettent à d'autres services d'accéder à la fonction Lambda. Dans ce blog, nous avons étudié la différence entre les deux types de politiques et vu comment nous pourrions mettre à jour les deux politiques pour accorder des autorisations.