UNPKG

serverless-iam-roles-per-function

Version:

A Serverless plugin to define IAM Role statements as part of the function definition block

143 lines (142 loc) 3.65 kB
{ "service": "test-service", "provider": { "stage": "dev", "region": "us-east-1", "name": "aws", "runtime": "python2.7", "iamRoleStatements": [ { "Effect": "Allow", "Action": [ "xray:PutTelemetryRecords", "xray:PutTraceSegments" ], "Resource": "*" } ] }, "functions": { "hello": { "handler": "handler.hello", "iamRoleStatements": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem" ], "Resource": "arn:aws:dynamodb:us-east-1:*:table/test" } ], "events": [], "name": "test-python-dev-hello", "package": {}, "vpc": {} }, "helloInherit": { "handler": "handler.hello", "iamRoleStatements": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem" ], "Resource": "arn:aws:dynamodb:us-east-1:*:table/test" } ], "iamRoleStatementsInherit": true, "events": [], "name": "test-python-dev-hello-inherit", "package": {}, "vpc": {} }, "streamHandler": { "handler": "handler.stream", "iamRoleStatements": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem" ], "Resource": "arn:aws:dynamodb:us-east-1:*:table/test" } ], "events": [ {"stream": "arn:aws:dynamodb:us-east-1:1234567890:table/test/stream/2017-10-09T19:39:15.151"} ], "name": "test-python-dev-stream-handler", "onError": "arn:aws:sns:us-east-1:1234567890123:lambda-dlq", "package": {}, "vpc": {} }, "sqsHandler": { "handler": "handler.sqs", "iamRoleStatements": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem" ], "Resource": "arn:aws:dynamodb:us-east-1:*:table/test" } ], "events": [ {"sqs": "arn:aws:sqs:us-east-1:1234567890:MyQueue"}, {"sqs": {"arn": "arn:aws:sqs:us-east-1:1234567890:MyOtherQueue"}} ], "name": "test-python-dev-sqs-handler", "onError": "arn:aws:sns:us-east-1:1234567890123:lambda-dlq", "package": {}, "vpc": {} }, "helloNoPerFunction": { "handler": "handler.hello", "events": [], "name": "test-python-dev-hello-no-per-function", "package": {}, "vpc": {} }, "helloEmptyIamStatements": { "handler": "handler.hello", "iamRoleStatements": [], "events": [], "name": "test-python-dev-hello-empty-iam-statements", "package": {}, "vpc": { "securityGroupIds": ["sg-xxxxxx"], "subnetIds": ["subnet-xxxx", "subnet-yyyy"] } }, "helloPermissionsBoundary": { "handler": "handler.permissionsBoundary", "iamRoleStatements": [], "iamPermissionsBoundary": { "Fn::Sub": "arn:aws:iam::xxxxx:policy/your_permissions_boundary_policy" }, "events": [], "name": "test-permissions-boundary-hello", "package": {} } }, "resources": { "Resources": { "HelloLambdaFunction": { "Type": "AWS::Lambda::Function", "Properties": { "TracingConfig": { "Mode": "Active" } } } } }, "package": { "artifact": "test-service.zip", "exclude": [ "node_modules/**", "package-lock.json" ], "artifactDirectoryName": "serverless/test-service/dev/1517233344526-2018-01-29T13:42:24.526Z" }, "artifact": "test-service.zip" }