如何解决Cloudformation 策略是否堆叠它们是否具有传递性?
我正在研究访问另一个访问数据库 A
的 lambda 函数 B
的 lambda 函数 C
,并且想知道 IAM 策略是否可传递。
A <-> B <-> C
B
可以使用 cloudformation 中的策略访问 C
(以下附录中的示例)
A
可以使用此策略访问 B
(也在下面,请原谅 JSON 和 YAML 的混合)
我的问题是:
B
可以访问 C
是否意味着如果 A
调用 B
那么 B
将能够访问 C
,还是 A
还需要显式访问 C
?
附录
允许 B
访问 C
的政策:
- PolicyName: RDSAccess
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- "rds-data:ExecuteStatement"
Resource:
- !Ref DBClusteraRN
允许 A
访问 B
的政策。
"managementaccesspolicy": {
"DependsOn": [
"LambdaExecutionRole"
],"Type": "AWS::IAM::Policy","Properties": {
"PolicyName": "management-access-policy","Roles": [
{
"Ref": "LambdaExecutionRole"
}
],"PolicyDocument": {
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow","Action": "lambda:InvokeFunction","Resource": {
"Fn::Sub": [
"arn:aws:lambda:${region}:${account}:function:*",{
"region": {
"Ref": "AWS::Region"
},"account": {
"Ref": "AWS::AccountId"
}
}
]
}
}
]
}
}
}
解决方法
B 可以访问 C 的事实是否意味着如果 A 调用 B 则 B 将能够访问 C,还是 A 也需要显式访问 C?
它不可传递。如果唯一可以访问 DB 秘密的函数是 C,那么只有 C 才能访问 DB。
在这种情况下,A 必须调用 C 来访问 DB。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。