通过AWS Lambda启动EC2实例

Ari*_*ose 0 amazon-ec2 amazon-web-services aws-lambda aws-iam

我试图在AWS上创建一个lambda函数来启动和停止EC2实例,但是它给出了以下错误

botocore.exceptions.ClientError: An error occurred (UnauthorizedOperation) when calling the StartInstances operation: You are not authorized to perform this operation.
Run Code Online (Sandbox Code Playgroud)

我应采取哪些步骤来阻止此错误?我不是开发人员,只是试图通过EC2运行一些ML模型.我阅读了有关创建IAM角色的内容,我使用完全EC2访问权限,但我不确定如何在lambda函数中使用相同的内容.任何人都可以指导我吗?

Joh*_*ein 7

创建AWS Lambda函数时,可以为该函数分配IAM角色.

当该函数进行AWS API调用时,它使用IAM角色中提供的权限来调用其他AWS服务.

因此,你应该:

  • 创建一个具有足够权限的IAM角色,以使Lambda函数起作用(但最好不要太多权限,因为它可能会产生安全漏洞)
  • 将IAM角色分配给Lambda函数

您的功能至少需要ec2:StartInstances权限.它可能也需要其他权限,具体取决于启动实例时使用的设置.