Lake Formation で IAM ユーザーのアクセス許可を制限したにもかかわらず、そのユーザーが Athena を使用して Data Catalog リソースにアクセスできる理由を教えてください。

所要時間2分
0

AWS Lake Formation で、AWS Identity and Access Management (IAM) ユーザーのアクセス許可を制限しましたが、その IAM ユーザーは依然として Amazon Athena にアクセスしてテーブルをクエリできます。

簡単な説明

新規および既存の Data Catalog リソースのデフォルトのセキュリティ設定を、Lake Formation アクセス許可モデルを使用するように更新することで、IAM ユーザーのアクセスを制限します。

Lake Formation のデフォルトアクセス許可の詳細については、「AWS Glue データの AWS Lake Formation モデルへのアクセス許可をアップグレードする」を参照してください。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

新しい Data Catalog リソースのデフォルトセキュリティ設定を更新する

データレイクの新しい Data Catalog リソースについては、「データレイクのデフォルト設定を変更する」を参照してください。デフォルトのセキュリティ設定に対する更新は、新しいリソースにのみ適用されます。

特定の新しいリソースのセキュリティ設定のみを更新するには、リソースを作成した後に、そのリソースに対するアクセス許可のみを更新します。詳細については、「Data Catalog リソースにアクセス許可を付与する」を参照してください。

既存の Data Catalog リソースのセキュリティ設定を更新する

次の手順を実行し、既存のデータベースから IAMAllowedPrincipals アクセス許可を削除します。

  1. AWS Lake Formation コンソールを開きます。
  2. ナビゲーションペインの [データカタログ][データベース] を選択します。
  3. 更新するデータベースの横にある円を選択します。
  4. [アクション] を選択してから、**[編集]**を選択します。
  5. [新しく作成されたテーブルのデフォルトアクセス許可][このデータベースの新しいテーブルには IAM アクセス制御のみを使用する] をオフにします。
  6. [保存] をクリックします。
  7. [データベース] ページで、データベースが選択されていることを確認します。[アクション]、**[取り消し]**の順に選択します。
  8. [アクセス許可の取り消し] ダイアログボックスにある [IAM ユーザーとロール] リストの [グループ] で、IAMAllowedPrincipals を選択します。
  9. [データベースのアクセス許可][Super] が選択されていることを確認した後、[取り消し] を選択します。

次の手順を実行し、既存のテーブルの IAMAllowedPrincipals アクセス許可を削除します。

  1. AWS Lake Formation コンソールを開きます。
  2. ナビゲーションペインで、[テーブル] を選択します。
  3. [テーブル] ページで、更新するテーブルの横にある円を選択します。
  4. [アクション]、**[取り消し]**の順に選択します。
  5. [アクセス許可の取り消し] ダイアログボックスにある [IAM ユーザーとロール] リストの [グループ] で、IAMAllowedPrincipals を選択します。
  6. [テーブルのアクセス許可][Super] が選択されていることを確認した後、[取り消し] を選択します。

注: データベースまたはテーブルへの Amazon Simple Storage Service (Amazon S3) パスが、Lake Formation に登録されていることを確認してください。

既存のリソースのセキュリティ設定を変更した後、AWS CLI または Lake Formation コンソールを使用して IAM ユーザーにテーブルのアクセス許可を付与します。

Lake Formation の操作を実行するには、ユーザーに Lake Formation アクセス許可および IAM アクセス許可が必要です。Lake Formation がアクセス許可を管理している場合に Athena からテーブルをクエリするには、ユーザーに次の IAM アクセス許可が必要です。

{  
    "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公式
AWS公式更新しました 3ヶ月前
コメントはありません