目前我需要以编程方式生成一个 AWS lambda 函数。我使用以下代码段来做到这一点。
import boto3
session = boto3.Session(aws_access_key_id="[FAKE_ACCESS_KEY]",
aws_secret_access_key="[FAKE_SECRET_KEY]",
region_name="us-east-1")
lambda_client = session.client("lambda")
lambda_response = lambda_client.create_function(FunctionName="MyCoolFunction",
Runtime="python3.7",
Role="[ARN_TO_MANUALLY_CREATED_ROLE]",
Handler="main.handler",
Code={"ZipFile":open("lambda_aws.zip", "rb").read()})
我想知道是否可以将[ARN_TO_MANUALLY_CREATED_ROLE]
替换为具有最少权限的"默认"角色 ID - 所以我不必手动进入控制台并创建它。
AWS 没有可用于 lambda 执行的"默认"角色,而是必须将其创建为脚本的一部分,或使用以前创建的角色。
也就是说,他们确实有一些您可以使用的托管 Lambda 执行策略,但显然它们附加到您无法创建的角色。
当我遇到这些类型的情况时,我会查看是否可以从源帐户到目标帐户承担角色来执行所需的任何操作。 有时,要求客户为您提前担任角色会更容易 - 然后要求他们让您在他们的帐户中制作一些东西。 这使他们能够控制您被允许执行的操作。