Warum können IAM-Benutzer Athena verwenden, um auf meine Datenkatalogressourcen zuzugreifen, auch wenn ich ihre Berechtigungen in Lake Formation eingeschränkt habe?

Lesedauer: 3 Minute
0

Ich habe die Berechtigungen für einen AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Benutzer in AWS Lake Formation eingeschränkt. Der IAM-Benutzer kann jedoch weiterhin auf Amazon Athena zugreifen, um eine Tabelle abzufragen.

Kurzbeschreibung

Um den Zugriff von IAM-Benutzern einzuschränken, aktualisiere die Standardsicherheitseinstellungen der neuen und vorhandenen Datenkatalogressourcen, um das Lake Formation-Berechtigungsmodell zu verwenden.

Weitere Informationen zu Lake Formation-Standardberechtigungen findest du unter Upgrade von AWS Glue-Datenberechtigungen auf das AWS Lake Formation-Modell.

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Update der Standardsicherheitseinstellungen für eine neue Datenkatalogressource

Eine neue Datenkatalogressource in deinem Data Lake findest du unter Ändern der Standardeinstellungen für deinen Data Lake. Updates der Standardsicherheitseinstellungen werden nur auf neue Ressourcen angewendet.

Erstelle die Ressource, um die Sicherheitseinstellungen nur für bestimmte neue Ressourcen zu aktualisieren. Aktualisiere dann nur die Berechtigungen für die Ressource. Weitere Informationen findest du unter Erteilen von Berechtigungen für Datenkatalogressourcen.

Update der Sicherheitseinstellungen für eine vorhandene Datenkatalogressource

Gehe wie folgt vor, um die IAMAllowedPrincipals-Berechtigungen aus einer vorhandenen Datenbank zu entfernen:

  1. Öffne die Konsole von AWS Lake Formation.
  2. Wähle im Navigationsbereich unterDatenkatalogdie OptionDatenbankenaus.
  3. Wähle den Kreis neben der Datenbank aus, die du aktualisieren möchtest.
  4. Wähle Aktionenund dannBearbeiten.
  5. Deaktiviere unterStandardberechtigungen für neu erstellte Tabellendie OptionNur IAM-Zugriffskontrolle für neue Tabellen in dieser Datenbank verwenden.
  6. Wähle Speichern.
  7. Vergewissere dich, dass auf der Seite Datenbanken die Datenbank ausgewählt ist. Wähle Aktionen und dann Widerrufen aus.
  8. Wähle im Dialogfeld Revoke permissions (Berechtigungen widerrufen) in der Liste der IAM-Benutzer und -Rollen für Gruppe die Option IAMAllowedPrincipals aus.
  9. Vergewissere dich, dass unterDatabase permissions (Datenbankberechtigungen) Super ausgewählt ist und wähle dann Widerrufen aus.

Gehe wie folgt vor, um die IAMAllowedPrincipals-Berechtigungen für eine vorhandene Tabelle zu entfernen:

  1. Öffne die Konsole von AWS Lake Formation.
  2. Wähle im NavigationsbereichTabellenaus.
  3. Wähle auf der SeiteTabellenden Kreis neben der Tabelle aus, die du aktualisieren möchtest.
  4. Wähle Aktionen und dann Widerrufen aus.
  5. Wähle im Dialogfeld Revoke permissions (Berechtigungen widerrufen) in der Liste der IAM-Benutzer und -Rollen für Gruppe die Option IAMAllowedPrincipals aus.
  6. Vergewissere dich, dass unter Table permissions (Tabellenberechtigungen) Super ausgewählt ist, und wähle dannWiderrufen.

Hinweis: Stelle sicher, dass der Amazon Simple Storage Service (Amazon S3)-Pfad zur Datenbank oder Tabelle bei Lake Formation registriert ist.

Nachdem du die Sicherheitseinstellungen für eine vorhandene Ressource geändert hast, verwende die AWS CLI oder die Lake-Formation-Konsole, um dem IAM-Benutzer Tabellenberechtigungen zu gewähren.

Um Lake-Formation-Operationen ausführen zu können, müssen Benutzer über Lake Formation- und IAM-Berechtigungen verfügen. Um eine Tabelle von Athena abzufragen, wenn Lake Formation Berechtigungen verwaltet, müssen Benutzer über die folgenden IAM-Berechtigungen verfügen:

{  
    "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Sid": "minimumAWSGlueLakeFormationAthenapermissiontorunselectqueryontable",  
            "Effect": "Allow",  
            "Action": [  
                "lakeformation:GetDataAccess",  
                "glue:SearchTables",  
                "glue:GetTables",  
                "glue:GetPartitions",  
                "glue:GetDatabases",  
                "glue:GetTable",  
                "glue:GetDatabase",  
                "athena:GetNamespace",  
                "athena:ListWorkGroups",  
                "athena:GetCatalogs",  
                "athena:GetNamespaces",  
                "athena:GetExecutionEngine",  
                "athena:GetExecutionEngines",  
                "athena:GetTables",  
                "athena:GetTable"  
            ],  
            "Resource": "*"  
        },  
        {  
            "Sid": "AthenaPermissionToRunQueryInAWorkergroup",  
            "Effect": "Allow",  
            "Action": [  
                "athena:StartQueryExecution",  
                "athena:GetQueryResults",  
                "athena:DeleteNamedQuery",  
                "athena:GetNamedQuery",  
                "athena:ListQueryExecutions",  
                "athena:StopQueryExecution",  
                "athena:GetQueryResultsStream",  
                "athena:ListNamedQueries",  
                "athena:CreateNamedQuery",  
                "athena:GetQueryExecution",  
                "athena:BatchGetNamedQuery",  
                "athena:BatchGetQueryExecution"  
            ],  
            "Resource": [  
                "arn:aws:athena:*:*:workgroup/*"  
            ]  
        },  
        {  
            "Sid": "allowS3PermissionToSaveAthenaQueryResults",  
            "Effect": "Allow",  
            "Action": [  
                "s3:PutObject",  
                "s3:GetObject",  
                "s3:ListBucketMultipartUploads",  
                "s3:AbortMultipartUpload",  
                "s3:CreateBucket",  
                "s3:ListBucket",  
                "s3:GetBucketLocation",  
                "s3:ListMultipartUploadParts"  
            ],  
            "Resource": [  
                "arn:aws:s3:::aws-athena-query-results-*"  
            ]  
        }  
    ]  
}
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten