Kaskadierende kontoübergreifende Berechtigungen - AWS Lake Formation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Kaskadierende kontoübergreifende Berechtigungen

Gehen Sie wie folgt vor, um die kontoübergreifende Berechtigungskaskadierung einzurichten und zu testen:

  1. Erstellen Sie mit der Lake Formation Formation-Konsole ein LF-Tag:

    • Tag-Schlüssel: c175912681300719

    • Tag-Werte: [all, public]

  2. Ordnen Sie dem Tag und dem Wert eine Tabelle zu:

    • Schlüssel: c175912681300719

    • Value (Wert): all

  3. Erteilen Sie eine kontoübergreifende Tag-Policy-Berechtigung. Erteilen Sie die SELECT Erlaubnis für die Tag-Richtlinie von Konto 111122223333 zu Konto444455556666:

    aws lakeformation grant-permissions \ --cli-input-json '{ "Principal": { "DataLakePrincipalIdentifier": "444455556666" }, "Resource": { "LFTagPolicy": { "CatalogId": "111122223333", "ResourceType": "TABLE", "Expression": [{ "TagKey": "c175912681300719", "TagValues": [ "all" ] }] } }, "Permissions": [ "SELECT" ] }'

    Der Administrator des Verbraucherkontos (444455556666) kann auf Tabellen zugreifen, die mit dem Tag gekennzeichnet sindc175912681300719:all. Das Verbraucherkonto kann keine Zugriffsberechtigungen an andere Benutzer mit einem der Tag-Werte kaskadieren.

  4. Erteilen Sie die DESCRIBE Erlaubnis. Der Administrator des Produzentenkontos erteilt DESCRIBE für den Tag-Schlüssel und beide Werte für das Kundenkonto:

    aws lakeformation grant-permissions \ --cli-input-json '{ "Principal": { "DataLakePrincipalIdentifier": "444455556666" }, "Resource": { "LFTag": { "CatalogId": "111122223333", "TagKey": "c175912681300719", "TagValues": ["all","public"] } }, "Permissions": [ "DESCRIBE" ] }'

    Der Administrator des Verbraucherkontos versucht, die Rechte mithilfe des Tags c175912681300719 und des Werts "all" an andere Benutzer weiterzugeben (identische Richtlinie):

    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" ] }'

    Ergebnis: AccessDeniedException

    Die Gewährung schlägt fehl, weil Lake Formation feststellt, dass die LF-Tag-Richtlinie genau der LF-Tag-Richtlinie entspricht, die vom Produzentenkonto verwendet wird, um Ressourcen mit dem Verbraucherkonto zu teilen, und nur prüft, ob der Benutzer über erteilbare Berechtigungen verfügt, nicht Regel #2 (DESCRIBE-Berechtigungen).

    Grant mit mehreren Tag-Werten:

    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" ] }'

    Ergebnis — Erfolg — Die Richtlinie ist nicht identisch, daher gilt Regel #2 und die DESCRIBE-Berechtigungen sind ausreichend.

    Der Verbraucher versucht, public einen einzigen Nutzen zu erzielen — erfolgreich:

    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" ] }'

    Die Richtlinie ist nicht identisch, daher gilt Regel #2.