创建IAM用户并授权使用LakeFormation
如果需要对LakeFormation服务进行精细的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),通过IAM,您可以:
- 根据企业的业务组织,在您的账号中,给企业中不同职能部门的员工创建IAM用户,让员工拥有唯一安全凭证,并使用云服务资源。
- 根据企业用户的职能,设置不同的访问权限,以达到用户之间的权限隔离。
- 将云服务资源委托给更专业、高效的其他账号或者云服务,这些账号或者云服务可以根据权限进行代运维。
如果账号已经能满足您的要求,不需要创建独立的IAM用户,您可以跳过本章节。
本章节为您介绍对用户授权的方法,操作流程如图1所示。
前提条件
给用户组授权之前,可参考LakeFormation服务权限说明了解用户组可以添加的LakeFormation权限,并结合实际需求进行选择。
如果您需要对除LakeFormation之外的其他服务授权,可参考系统权限查看IAM支持服务的所有策略。
操作流程
- 创建用户组并授权
在IAM控制台创建用户组,并授予LakeFormation服务对应权限。
- 创建用户并加入用户组
在IAM控制台创建用户,并将其加入1.创建用户组并授权中创建的用户组。
操作LakeFormation实例的IAM用户名中只能包含大小写字母、数字和下划线(_),否则将无法正常使用LakeFormation服务。
- 用户登录并验证权限
以新创建的用户登录云服务控制台,切换至授权区域,验证权限是否生效。
例如:
在“服务列表”中选择LakeFormation服务,进入总览界面,单击右上角“购买实例”,实例创建界面正常展示,表示“lakeformation:role:create”权限已生效。
LakeFormation服务权限说明
默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。
权限根据授权精细程度分为角色和策略。
- 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
- IAM项目只读授权指导:当租户管理员需要给某个子用户分配LakeFormation服务在某个IAM项目下的只读权限。可以给该用户创建一个用户组,同时在用户组将LakeFormation ReadOnlyAccess系统策略授权给指定IAM项目即可。
- 企业项目授权指导:当租户管理员需要给某个子用户分配LakeFormation服务在某个企业项目下的所有操作权限。可以给该用户创建一个用户组,同时在用户组中将LakeFormation CommonAccess授权给全局,将LakeFormation FullAccess授权给指定企业项目即可。
- 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。多数细粒度策略以API接口为粒度进行权限拆分,LakeFormation的自定义IAM策略操作可参考创建LakeFormation自定义IAM策略。
| 系统角色/策略名称 | 描述 | 类别 | 依赖关系 |
|---|---|---|---|
| LakeFormation FullAccess | LakeFormation管理员权限,拥有该权限的用户可以操作并使用所有LakeFormation服务功能。 | 系统策略 |
|
| LakeFormation ReadOnlyAccess | LakeFormation只读权限,拥有该权限的用户可以执行LakeFormation所有查询类功能。 | 系统策略 |
|
| LakeFormation CommonOperations | LakeFormation基础权限,包含LakeFormation服务协议查看/授权/取消,以及OBS、TMS等周边依赖服务的基础权限集合。 | 系统策略 |
|
| 操作类型 | 操作项 | 描述 |
|---|---|---|
| 只读权限 | lakeformation:access:describe | 查询接入客户端。 |
| 只读权限 | lakeformation:agency:describe | 查询委托。 |
| 只读权限 | lakeformation:catalog:describe | 查询Catalog元数据。 |
| 只读权限 | lakeformation:configuration:describe | 查询配置。 |
| 只读权限 | lakeformation:credential:describe | 查询认证信息。 |
| 只读权限 | lakeformation:database:describe | 查询数据库元数据。 |
| 只读权限 | lakeformation:function:describe | 查询函数元数据。 |
| 只读权限 | lakeformation:group:describe | 查询用户组以及关联角色关系。 |
| 只读权限 | lakeformation:instance:describe | 查询实例。 |
| 只读权限 | lakeformation:instanceJob:describe | 查询实例级任务。 |
| 只读权限 | lakeformation:job:describe | 查询任务。 |
| 只读权限 | lakeformation:obs:describe | 查询OBS桶列表。 |
| 只读权限 | lakeformation:policy:describe | 查询权限策略。 |
| 只读权限 | lakeformation:policy:export | 批量查询权限策略。 |
| 只读权限 | lakeformation:role:describe | 查询角色。 |
| 只读权限 | lakeformation:table:describe | 查询表元数据。 |
| 只读权限 | lakeformation:tag:describe | 查询资源标签。 |
| 只读权限 | lakeformation:user:describe | 查询用户以及关联角色关系。 |
| 只读权限 | lakeformation:dataset:describe | 查询数据集元数据。 |
| 只读权限 | lakeformation:dataset:describeFile | 查询数据集文件元数据。 |
| 只读权限 | lakeformation:dataset:describeFileGroup | 查询数据集文件组元数据。 |
| 只读权限 | lakeformation:model:describe | 查询模型元数据。 |
| 只读权限 | lakeformation:model:describeFile | 查询模型文件元数据。 |
| 写权限 | lakeformation:access:create | 创建接入客户端。 |
| 写权限 | lakeformation:access:delete | 删除接入客户端。 |
| 写权限 | lakeformation:agency:create | 创建委托。 |
| 写权限 | lakeformation:agency:drop | 删除委托。 |
| 写权限 | lakeformation:catalog:alter | 修改Catalog元数据。 |
| 写权限 | lakeformation:catalog:create | 创建Catalog元数据。 |
| 写权限 | lakeformation:catalog:drop | 删除Catalog元数据。 |
| 写权限 | lakeformation:database:alter | 修改数据库元数据。 |
| 写权限 | lakeformation:database:create | 创建数据库元数据。 |
| 写权限 | lakeformation:database:drop | 删除数据库元数据。 |
| 写权限 | lakeformation:dataset:create | 创建数据集元数据。 |
| 写权限 | lakeformation:file:create | 创建文件。 |
| 写权限 | lakeformation:file:drop | 删除文件。 |
| 写权限 | lakeformation:file:alter | 修改文件。 |
| 写权限 | lakeformation:function:alter | 修改函数元数据。 |
| 写权限 | lakeformation:function:create | 创建函数元数据。 |
| 写权限 | lakeformation:function:drop | 删除函数元数据。 |
| 写权限 | lakeformation:group:alter | 修改用户组以及关联角色关系。 |
| 写权限 | lakeformation:instance:access | 申请接入服务。 |
| 写权限 | lakeformation:instance:alter | 修改实例。 |
| 写权限 | lakeformation:instance:create | 创建实例。 |
| 写权限 | lakeformation:instance:drop | 删除实例。 |
| 写权限 | lakeformation:instanceJob:alter | 修改实例级任务。 |
| 写权限 | lakeformation:instanceJob:create | 创建实例级任务。 |
| 写权限 | lakeformation:instanceJob:drop | 删除实例级任务。 |
| 写权限 | lakeformation:instanceJob:exec | 执行实例级任务。 |
| 写权限 | lakeformation:instance:createSubscriber | 创建元数据事件订阅者。 |
| 写权限 | lakeformation:instance:deleteSubscriber | 删除元数据事件订阅者。 |
| 写权限 | lakeformation:job:alter | 修改非实例级任务。 |
| 写权限 | lakeformation:job:create | 创建非实例级任务。 |
| 写权限 | lakeformation:job:drop | 删除非实例级任务。 |
| 写权限 | lakeformation:job:exec | 执行非实例级任务。 |
| 写权限 | lakeformation:model:create | 创建模型元数据。 |
| 写权限 | lakeformation:metadata:restore | 恢复元数据。 |
| 写权限 | lakeformation:part:alter | 修改分区。 |
| 写权限 | lakeformation:part:drop | 删除分区。 |
| 写权限 | lakeformation:part:create | 创建分区。 |
| 写权限 | lakeformation:policy:create | 创建权限策略。 |
| 写权限 | lakeformation:policy:drop | 删除权限策略。 |
| 写权限 | lakeformation:role:alter | 修改角色以及关联用户组关系。 |
| 写权限 | lakeformation:role:create | 创建角色。 |
| 写权限 | lakeformation:role:drop | 删除角色。 |
| 写权限 | lakeformation:table:alter | 修改表元数据。 |
| 写权限 | lakeformation:table:create | 创建表元数据。 |
| 写权限 | lakeformation:table:drop | 删除表元数据。 |
| 写权限 | lakeformation:tableFile:alter | 修改表文件。 |
| 写权限 | lakeformation:tableFile:create | 创建表文件。 |
| 写权限 | lakeformation:tableFile:drop | 删除表文件。 |
| 写权限 | lakeformation:tableFileGroup:alter | 修改表文件组元数据。 |
| 写权限 | lakeformation:tableFileGroup:create | 创建表文件组元数据。 |
| 写权限 | lakeformation:tableFileGroup:drop | 删除表文件组元数据。 |
| 写权限 | lakeformation:transaction:operate | 操作事务。 |
| 写权限 | lakeformation:user:alter | 修改用户以及关联角色关系。 |
| 权限管理 | lakeformation:accessService:grant | 授权接入服务。 |
| 权限管理 | lakeformation:accessTenant:grant | 授权接入租户。 |
| 权限管理 | lakeformation:accessAgency:describe | 查询接入委托信息。 |
| 权限管理 | lakeformation:accessService:describe | 查看接入服务。 |
| 权限管理 | lakeformation:agreement:describe | 查询服务协议授权。 |
| 权限管理 | lakeformation:agreement:cancel | 取消服务协议授权。 |
| 权限管理 | lakeformation:agreement:grant | 授权服务协议授权。 |
| 权限管理 | lakeformation:instance:authorizeLocation | 授权将OBS路径授权给LakeFormation服务。 |
| 权限管理 | lakeformation:instance:cancelAuthorizeLocation | 取消授权OBS路径。 |
| 权限管理 | lakeformation:policy:delegate | 将权限策略委托给其他授权主体。 |
