簡體   English   中英

AWS lambda 使用啟動模板和 boto3 創建 ec2 實例,僅使用所需的權限

[英]AWS lambda to create ec2 instance using Launch template and boto3 only using the required permissions

我在為我的 IAM 角色設置正確權限時遇到問題,該角色由 lambda function 承擔。 lambda 的目的是使用提供的啟動模板啟動 ec2 實例。 但是,我不斷得到You are not authorized to perform this operation. 由於 IAM 角色的權限不正確而導致的錯誤。

我目前對該角色附加的唯一政策是:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "ec2:GetLaunchTemplateData"
            ],
            "Resource": "*"
        }
    ]
}

Lambda boto3/python 代碼:

import boto3

ec2 = boto3.resource('ec2')

lt = {
    # 'LaunchTemplateId': 'lt-0b91c7e5c5437a1c1',
    'LaunchTemplateName': 'template_name',
    'Version': '$Latest'
}


def handler(event, context):

    instances = ec2.create_instances(
        LaunchTemplate=lt,
        MinCount=1,
        MaxCount=1
        # UserData=user_data
    )

注意:如果我將AmazonEC2FullAccess AWS 托管策略附加到 lambda 角色,它工作正常

我錯過了什么?

此外,是否有一種簡單的方法可以找到 function 資源所需的“最低限度”IAM 策略權限?

根據評論。

通常, RunInstances權限不足以啟動實例。 需要什么權限取決於實例做什么,例如使用 KMS 加密卷、iam 實例角色/配置文件、設置標簽等。

在 OPs 案例中,要啟動的實例使用標簽,因此需要ec2:CreateTags權限才能使其工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM