/
githubmirror
/
trivy
Обзор
Документация
Войти
/
githubmirror
/
trivy
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
pkg/iac/adapters/cloudformation/aws/lambda/function.go
48 строк
1 KB
Nikita Pivkin
test(cloudformation): add CF tests (#6315)
29 мар 2024, 04:08
Не верифицирован
29 мар 2024, 04:08
625f22b
Код
Авторство
О чём код?
package lambda import ( "github.com/aquasecurity/trivy/pkg/iac/providers/aws/lambda" "github.com/aquasecurity/trivy/pkg/iac/scanners/cloudformation/parser" ) func getFunctions(ctx parser.FileContext) (functions []lambda.Function) { functionResources := ctx.GetResourcesByType("AWS::Lambda::Function") for _, r := range functionResources { function := lambda.Function{ Metadata: r.Metadata(), Permissions: getPermissions(r, ctx), } if prop := r.GetProperty("TracingConfig"); prop.IsNotNil() { function.Tracing = lambda.Tracing{ Metadata: prop.Metadata(), Mode: prop.GetStringProperty("Mode"), } } functions = append(functions, function) } return functions } func getPermissions(funcR *parser.Resource, ctx parser.FileContext) (perms []lambda.Permission) { permissionResources := ctx.GetResourcesByType("AWS::Lambda::Permission") for _, r := range permissionResources { if prop := r.GetStringProperty("FunctionName"); prop.EqualTo(funcR.ID()) { perm := lambda.Permission{ Metadata: r.Metadata(), Principal: r.GetStringProperty("Principal"), SourceARN: r.GetStringProperty("SourceArn"), } perms = append(perms, perm) } } return perms }