amazon-web-services - SAM 模板中的 AWS AppConfig 验证 Lambda 策略
问题描述
我正在尝试向 lambda 添加策略以允许 AppConfig 调用它。我可以使用以下命令通过终端执行此操作:
aws lambda add-permission --function-name ConfigValidator.Arn --action lambda:InvokeFunction --statement-id appconfig --principal appconfig.amazonaws.com --output json --region eu-west-1
但是如何通过 SAM 模板自动完成呢?
解决方案
这是我如何做到的:
- 创建可访问您的 AppConfig 的托管策略
- 将该托管策略附加到您的 lambda 配置为使用的角色
这是使用 CDK 的代码(CDK 是创建 AWS 资源的最新最好的工具,我强烈推荐使用它!)。
如果您不想使用 CDK,您可以手动手动设置相同的托管策略。
详细示例如下:
创建可访问您的 AppConfig 的托管策略
const resourceArn = `arn:aws:appconfig:${props.region}:${props.accountId}:application/${this.appConfigApplication.ref}*`
this.appConfigReaderManagedPolicy = new ManagedPolicy(this, `AppConfigReader-${id}`, {
managedPolicyName: `AppConfigReader-${id}`,
description: `Readonly access to ${id}`,
statements: [
new PolicyStatement({
resources: [resourceArn],
actions: [
'appconfig:GetConfiguration',
'appconfig:GetApplication',
]
})
]
})
将该托管策略附加到您的 lambda 配置为使用的角色
//assuming your lambda is already configured somewhere
this.lambdaFunction.role.addManagedPolicy(this.appConfigReaderManagedPolicy)
推荐阅读
- python - Squish 中测试用例之间的 AUT 连接丢失
- javascript - 如何将 backgroundImage 属性设置为 Rest API 中的 URL?
- python - 如何安全地解决在 Pandas DataFrame 上分配时带有复制警告的设置
- kentico-11 - 如何设置 Kentico SiteContext.CurrentSite 属性值?
- github - 关闭 Github 企业邮件通知
- javascript - 继续单击刷新按钮,直到出现数据
- react-native - Expo-splash-screen 正在抛出无法读取未定义的属性“productType”
- python - 用于并行任务执行逻辑的 Python Thread
- php - Symfony 5 / Doctrine:按创建日期时间对实体集合进行排序
- swift - Swift Filemanager 无法创建临时目录