AWS CDK能否为角色授予特定API方法访问权限而非仅整个API?
解答
完全可以为已有角色仅授予单个API端点的访问权限,无需在API Gateway资源层面做全量授权。
实现说明
- AWS IAM对API Gateway的授权粒度原生支持到单个方法级别,对应资源ARN的格式为:
arn:aws:execute-api:<区域>:<账号ID>:<API ID>/<部署阶段>/<HTTP请求方法>/<资源路径> - 你代码中创建的
endpoint变量本身就是API Gateway的Method实例,CDK已经封装好了对应的授权方法,直接调用即可:endpoint.grantExecute(props.invocationRole) - 上述调用会自动生成符合最小权限原则的IAM策略,仅开放该单个端点的调用权限,不会影响同资源下的其他接口。
如果需要手动编写IAM策略,只需将动作指定为execute-api:Invoke,资源字段填上述单个方法对应的ARN即可。
内容的提问来源于stack exchange,提问作者Stupid.Fat.Cat
相关产品推荐
相关产品推荐

