问题描述
是否可以在 AWS CloudFormation 中为 AWS Lambda 的 LambdaExecutionRole
编写自定义权限边界策略?
如果我可以在此代码中为 LambdaExecutionRole
编写所有必要的策略,而不是使用 !Ref
或 !Sub
,那可能是最好的。
请参阅 PermissionBoundary
部分
LambdaExecutionRole:
Description: Creating service role in IAM for AWS Lambda
Type: AWS::IAM::Role
Properties:
RoleName: !Sub 'CodeStar-${ProjectId}-Execution${Stage}'
AssumeRolePolicyDocument:
Statement:
- Effect: Allow
Principal:
Service: [lambda.amazonaws.com]
Action: sts:AssumeRole
Path: /
ManagedPolicyArns:
- !Sub 'arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'
PermissionsBoundary: !Sub
Properties:
PolicyDocument:
Statement:
- Action:
- logs:CreateLogGroup
- logs:CreateLogStream
- logs:DescribeLogGroups
- logs:PutLogEvents
- xray:Put*
Effect: Allow
Resource: '*'
解决方法
遗憾的是你不能这样做。 PermissionsBoundary
需要 ARN 到 IAM 政策。因此,首先您必须创建 AWS::IAM::ManagedPolicy
,然后在 PermissionsBoundary
中引用它的 ARN。