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

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

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

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

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

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

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

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

  3. 授予权限页面上,选择按属性分配委托人。

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

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

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

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

  6. 接下来,选择数据目录帐户或在外部帐户中。您必须对资源拥有相应的可授予权限才能成功完成权限授予。

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

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

  9. 选择授权

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

以下示例显示了一个属性表达式,必须满足该表达式才能获得资源的所有可用权限。您也可以指定个人权限Select,例如Describe、或Drop。该表达式使用 Cedar 策略表达式。有关 Cedar 的更多信息,请参阅 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\""'