在 Cloudformation 模板中为 AWS API 网关使用 IAM 角色
Using IAM Role for AWS API Gateway in Cloudformation Template
我一直在尝试使用 IAM 角色,同时使用 cloudformation 模板在 API 网关中创建 API,以便 API 网关可以调用设置为的 Lambda 函数特定 GET / POST 调用的端点。
我在搜索时遇到了这个:-
如果要调用一个 lambda 函数,这将很有帮助。但是,如果 API 是使用 JSON / Swagger 定义部署的,并且有多个 lambda 函数作为端点,那么所有这些都需要添加到云形成模板中。
是否有任何其他模板资源可用于将 IAM 角色关联到 API 网关而不是使用 AWS::Lambda::Permission?
我建议使用 AWS::Lambda::Permission 将每个 Lambda 函数单独添加到您的 CloudFormation 模板中。这为您提供了最佳的运行时性能,并显式管理您的权限。
如果您反对这样做,那么另一种选择是让 API 网关通过角色调用您的 Lambda 函数。手动或通过 CloudFormation 在您的帐户中创建一个角色。授予此角色调用您的 Lambda 函数的权限,可以使用星号 (*) 单独或整体调用。在定义 API 网关集成时指定此角色。 API 网关将在调用您的 Lambda 函数之前承担此角色。
请注意,这确实会在运行时增加一些延迟,因为 API 网关必须在每次调用您的 Lambda 函数之前执行额外的承担角色调用。
我一直在尝试使用 IAM 角色,同时使用 cloudformation 模板在 API 网关中创建 API,以便 API 网关可以调用设置为的 Lambda 函数特定 GET / POST 调用的端点。
我在搜索时遇到了这个:-
如果要调用一个 lambda 函数,这将很有帮助。但是,如果 API 是使用 JSON / Swagger 定义部署的,并且有多个 lambda 函数作为端点,那么所有这些都需要添加到云形成模板中。
是否有任何其他模板资源可用于将 IAM 角色关联到 API 网关而不是使用 AWS::Lambda::Permission?
我建议使用 AWS::Lambda::Permission 将每个 Lambda 函数单独添加到您的 CloudFormation 模板中。这为您提供了最佳的运行时性能,并显式管理您的权限。
如果您反对这样做,那么另一种选择是让 API 网关通过角色调用您的 Lambda 函数。手动或通过 CloudFormation 在您的帐户中创建一个角色。授予此角色调用您的 Lambda 函数的权限,可以使用星号 (*) 单独或整体调用。在定义 API 网关集成时指定此角色。 API 网关将在调用您的 Lambda 函数之前承担此角色。
请注意,这确实会在运行时增加一些延迟,因为 API 网关必须在每次调用您的 Lambda 函数之前执行额外的承担角色调用。