级联跨账户权限
按照以下步骤进行操作,设置和测试跨账户权限级联:
-
使用 Lake Formation 控制台创建 LF 标签:
标签键:
c175912681300719标签值:
[all,public]
-
将表与标签和值相关联:
键:
c175912681300719值:
all
-
授予跨账户标签策略权限。从账户
向账户111122223333授予标签策略的444455556666SELECT权限:aws lakeformation grant-permissions \ --cli-input-json '{ "Principal": { "DataLakePrincipalIdentifier": "444455556666" }, "Resource": { "LFTagPolicy": { "CatalogId": "111122223333", "ResourceType": "TABLE", "Expression": [{ "TagKey": "c175912681300719", "TagValues": [ "all" ] }] } }, "Permissions": [ "SELECT" ] }'使用者账户(
444455556666)管理员可以访问使用标签标记的表。使用者账户无法使用任一标签值级联对其他用户的权限授予。c175912681300719:all -
授予
DESCRIBE权限。创建者账户管理员向使用者账户授予标签键和两个值的DESCRIBE权限:aws lakeformation grant-permissions \ --cli-input-json '{ "Principal": { "DataLakePrincipalIdentifier": "444455556666" }, "Resource": { "LFTag": { "CatalogId": "111122223333", "TagKey": "c175912681300719", "TagValues": ["all","public"] } }, "Permissions": [ "DESCRIBE" ] }'使用者账户管理员尝试使用标签
和值“c175912681300719all”(完全相同的策略)将权限级联授予其他用户:aws lakeformation grant-permissions --region us-east-1 --cli-input-json '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::444455556666:role/AccessAnalyzerTrustedService" }, "Resource": { "LFTagPolicy": { "CatalogId": "111122223333", "ResourceType": "TABLE", "Expression": [ { "TagKey": "c175912681300719", "TagValues": [ "all" ] } ] } }, "Permissions": [ "SELECT" ] }'结果:AccessDeniedException
授予失败,因为 Lake Formation 检测到 LF 标签策略与创建者账户用于与使用者账户共享资源的 LF 标签策略完全相同,并且仅检查用户是否具有可授予的权限,而不是检查规则 2(DESCRIBE 权限)。
使用多个标签值授予:
aws lakeformation grant-permissions --region us-east-1 --cli-input-json '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::444455556666:role/AccessAnalyzerTrustedService" }, "Resource": { "LFTagPolicy": { "CatalogId": "111122223333", "ResourceType": "TABLE", "Expression": [ { "TagKey": "c175912681300719", "TagValues": [ "all","public" ] } ] } }, "Permissions": [ "SELECT" ] }'结果(成功):策略不完全相同,因此规则 2 适用,DESCRIBE 权限相同就足够了。
使用者尝试单个
public值 - 成功:aws lakeformation grant-permissions --cli-input-json '{ "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::444455556666:role/AccessAnalyzerTrustedService" }, "Resource": { "LFTagPolicy": { "CatalogId": "111122223333", "ResourceType": "TABLE", "Expression": [ { "TagKey": "c175912681300719", "TagValues": [ "public" ] } ] } }, "Permissions": [ "SELECT" ] }'策略不完全相同,因此规则 2 适用。