使用基于属性的访问控制来授予权限 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用基于属性的访问控制来授予权限

本主题介绍对 Data Catalog 资源授予基于属性的访问权限所需遵循的步骤。你可以使用 Lake Formation 控制台或 Amazon 命令行界面 (Amazon CLI)。

  1. 在上打开 Lake Formation 控制台 https://console.aws.amazon.com/lakeformation/,然后以数据湖管理员、资源创建者或对资源拥有可授予权限的 IAM 用户身份登录。

  2. 请执行以下操作之一:

    • 在导航窗格的权限下,选择数据湖权限。然后选择授予

    • 在导航窗格的 Data Catalog 下,选择目录。然后,选择一个目录对象(目录、数据库、表和数据筛选条件),然后从权限下的操作菜单中选择授予

  3. 授予权限页面上,选择按属性划分的主体

  4. 指定属性键和值。如果选择多个值,则将使用 OR 运算符来创建属性表达式。这意味着,如果分配给 IAM 角色或用户的任何属性标签值匹配,则该角色或用户将 role/user 获得对资源的访问权限。

    如果指定多个属性标签,则将使用 AND 运算符来创建属性表达式。只有在属性表达式中的每个属性标签为 IAM 分配了匹配的标签 role/user 时,才会向委托人授予对数据目录资源的权限。

    查看控制台中显示的生成 Cedar 策略表达式。

    在“授予权限”对话框中,创建了一个属性表达式。
  5. 选择权限范围。如果被授权者属于外部账户,请选择外部账户并输入 Amazon 账户 ID。

  6. 接下来,在外部账户中选择 Data Catalog 账户。您必须对资源拥有相应的可授予权限才能成功完成权限授予。

  7. 指定要允许具有匹配属性的主体(用户或角色)执行哪些操作。如果为 IAM 实体分配的标签和值至少与您指定的其中一个属性表达式相匹配,则向 IAM 实体授予访问权限。在控制台中查看 Cedar 策略表达式。有关 Cedar 的更多信息,请参阅 What is Cedar? | Cedar 政策语言参考 GuideLink

  8. 接下来,选择要授予访问权限的 Data Catalog 资源。您可以为各种 Data Catalog 资源(包括目录、数据库、表和数据筛选条件)定义这些权限。

  9. 选择授权

    通过这种方法,您可以根据属性控制访问权限,确保只有具有相应标签的用户或角色才能对指定资源执行特定操作。

以下示例显示了一个属性表达式,必须满足该表达式条件才能获得资源的所有可用权限。您也可以指定单个权限,例如 SelectDescribeDrop。该表达式使用 Cedar 策略表达式。有关 Cedar 的更多信息,请参阅 What is Cedar? | Cedar 政策语言参考 GuideLink

此条件检查 IAM 主体是否有 department 标签,且 department 标签的值是否等于 sales

aws lakeformation grant-permissions --principal '{"DataLakePrincipalIdentifier": "111122223333:IAMPrincipals"}' \ --resource '{"Database": {"CatalogId": 111122223333, "Name": "abac-db"}}' \ --permissions ALL \ --condition '{"Expression": "context.iam.principalTags.hasTag(\"department\") \ && context.iam.principalTags.getTag(\"department\") == \"sales\""}'