gpt4 book ai didi

amazon-web-services - 向 lambda 授予多个主体调用权限的方法

转载 作者:行者123 更新时间:2023-12-05 05:21:17 25 4
gpt4 key购买 nike

我有一个 lambda,需要访问超过 1 个主体,因此我正在寻找在 CloudFormation 模板中创建所有必要的调用权限的方法。

例如,帐户 123 和 456 将需要访问 MyFunction,因此类似的操作将无法工作:

Resources:
LambdaInvokePermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName: arn:aws:lambda:us-west-2:${AWS::AccountId}:MyFunction
Action: lambda:InvokeFunction
Principal: "123,456"

...它不起作用,因为 documentation 说它只接受字符串,所以我认为也许将 CommaDelimitedList 参数传递给 CloudFormation 模板并使用 Fn:Join 可以完成这项工作。像这样的事情:

Parameters:
MyAccounts:
Description: All accounts
Type: CommaDelimitedList
...
Resources:
CrossInvokePermission:
Type: AWS::Lambda::Permission
Properties:
Fn::Join:
- ""
- - '{"Principal": {"AWS": ["'
- Fn::Join: ['","', {Ref: MyAccounts} ]
- '"]}, "Action": "lambda:InvokeFunction", "FunctionName" : "'
- arn:aws:lambda:us-west-2:${AWS::AccountId}:function:MyFunction
- '"}'

我的问题是,是否可以做我正在尝试的事情?到目前为止我的努力都失败了。

最佳答案

我认为目前仅使用 CloudFormation 在单一资源中这是不可能的。

如果您不介意拥有多个资源,则可以使用不同的帐户 ID 多次显示 InvokePermission block 。不过,我假设这不是您想要的。

如果您事先不知道需要允许访问多少个帐户,或者您不想要那么多重复的样板文件,则可以使用模板预处理器从较小的一组帐户生成模板。输入。谷歌看起来合理的三个热门点击是 condense , fab_aws ,和cloudformable ,但我认识的大多数开发人员只是自己编写了一些东西来满足他们的特定需求。

关于amazon-web-services - 向 lambda 授予多个主体调用权限的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43198931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com