スキップしてコンテンツを表示

Athena を Quick Sight のデータソースとして使用する際の「アクセス拒否」エラーを解決する方法を教えてください。

所要時間3分
0

Amazon Athena を Amazon Quick Sight アカウントのデータソースとして使用しようとすると「アクセス拒否」エラーが表示されます。

簡単な説明

Amazon Athena を Amazon Quick Sight のデータソースとして使用するとアクセス拒否エラーが表示される一般的な原因は次のとおりです。

  • Amazon Simple Storage Service (Amazon S3) バケットへのアクセスに要求される権限が Quick Sight アカウントにない。
  • データファイルが AWS Key Management Service (AWS KMS) キーで暗号化されている。
  • 必要となる AWS Identity and Access Management (IAM) アクセス権限ポリシーが割り当てられていない。
  • Amazon S3 バケットが存在しない。または、データのクエリに使用する IAM ロールに要求される S3 アクセス権限がない。
  • (AWS Organizations を使用する Quick Sight アカウントの場合) 必要となるサービスコントロールポリシー (SCP) が割り当てられていない。
  • (Lake Formation を使用する Athena アカウントの場合) Quick Sight ユーザーまたはグループに AWS Lake Formation アクセス権限がない。

注: トラブルシューティングを開始する前に、Athena のデータにアクセスできるようにしてください。

解決方法

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

Amazon S3 バケットへのアクセスに要求される権限が Quick Sight アカウントにない

その場合、次のようなエラーが表示されます。

"An error has been thrown from AWS Athena client.Permission denied on S3 path:sourceErrorMessage: s3:/example bucket/object name"

S3 バケットへのアクセス権限を取得するには、次の手順を実行します。

  1. Amazon Quick Sight コンソールを開きます。
  2. [Quick Sight の管理] を選択します。
  3. [セキュリティとアクセス許可] を選択します。
  4. [Quick Sight の AWS のサービスへのアクセス][管理] を選択します。
  5. AWS サービスのリストから、[Amazon S3] を選択します。
  6. [S3 バケットを選択] を選択し、S3 バケットを選択します。
  7. [Athena ワークグループの書き込みアクセス権限] を選択し、[完了] を選択します。
  8. [保存] を選択します。

データファイルが AWS KMS キーで暗号化されている

データファイルが AWS KMS キーで暗号化されている場合、Amazon S3 でデータへのアクセスを拒否することがあります。この問題を解決するには、AWS CLI か AWS KMS コンソールのいずれかを使用して、Quick Sight サービスロールに AWS KMS キーへのアクセス権を付与します。

AWS CLI を使用する

次の手順を実行します。

  1. IAM コンソールを使用して Quick Sight サービスロール ARN を探します。

  2. Amazon S3 コンソールを使用して AWS KMS キー ARN を探します。

  3. データファイルを含む S3 バケットへ移動します。

  4. [概要] タブを選択し、KMS キー ID を探します。

  5. Quick Sight サービスロール ARN を KMS キーポリシーに追加します。

  6. AWS CLI でcreate-grant コマンドを実行します。

    aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quicksight_role_arn --operations Decrypt
    

    注: お使いのものでそれぞれ、aws_kms_key_arn は AWS KMS キーの ARN に、quicksight_role_arn は Quick Sight サービスロールの ARN に置き換えます。

AWS KMS コンソールを使用する

Quick Sight サービスロールを AWS KMS キーポリシーに追加するには、キーポリシーを変更します。続いて、次のアクセス権限をキーポリシーに追加します。

{     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
         "AWS": [
              "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-service-role-v0",
              "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-s3-consumers-role-v0"
              ]
         },
         "Action": [
            "kms:Decrypt"
               ],
         "Resource": "*"
}

注: 前述のポリシーでは、Quick Sight サービスロールの ARN は Principal セクションに追加するようにしてください。

必要となる IAM アクセス権限ポリシーが割り当てられていない

どのポリシーが割り当てられているかを確認し、そのポリシーによってアクセスが制限されているかどうかを確認するには、次の手順を実行します。

  1. Amazon Quick Sight コンソールを開きます。
  2. [Quick Sight の管理] を選択します。
  3. [セキュリティとアクセス許可] を選択します。
  4. **[IAM ポリシーの割り当て] **を選択します。
  5. Athena にアクセスするための IAM ポリシー割り当てがあるかどうかを確認します。
  6. このポリシーで S3 か Athena へのアクセスが制限されていないことを確認します。

ポリシーで S3 か Athena へのアクセスが制限されている場合は、Quick Sight 管理者にポリシーの変更を依頼してください。自分が管理者の場合は、IAM ポリシー割り当てを非アクティブ化し、ポリシーを編集して S3 と Athena のアクセス権限が含まれるようにします。詳細については、「Setting granular access to AWS services through IAM」を参照してください。

S3 バケットが存在しないか、データのクエリに使用する IAM ロールに要求される S3 アクセス権限がない

次のエラーが表示されます。

"Unable to verify/create output bucket."

上記のエラーを解決するには、「Amazon Athena で「Unable to verify/create output bucket」エラーを解決する方法を教えてください。」を参照してください。

バケットが存在しない場合は、有効な S3 バケットを追加します。Amazon Quick Sight コンソールで、AWS サービスのリストから Amazon S3 を選択します。続いて、クエリ結果の場所で使用する S3 バケットを選択します。

必要となる SCP が自分 (組織) に割り当てられていない

組織の管理者に、SCP 設定を確認し自分に割り当てられているアクセス権限を確認してもらうよう依頼してください。自分が組織の管理者の場合は、「サービスコントロールポリシーの作成、更新、削除」を参照してください。

Quick Sight ユーザーまたはグループに Lake Formation アクセス権限がない

Lake Formation を使用する Athena アカウントに、次のエラーが表示される場合があります。

"An error has been thrown from the AWS Athena client.Insufficient permissions to execute the query.Insufficient Lake Formation permission(s)."

Quick Sight のLake Formation アクセス権限を付与するには、自分が Lake Formation 管理者であることが必要です。

次の手順を実行します。

  1. Quick Sight ユーザーまたはグループの ARN を探します。

  2. 次の AWS CLI コマンドのいずれかを実行します。

    describe-user

    aws quicksight describe-user  --user-name user_name  --aws-account-id account_id --namespace default
    

    -or-

    describe-group

    aws quicksight describe-group --group-name group_name  --aws-account-id account_id --namespace default
    

    注: 上記のコマンドでは、user_name を自分のユーザー名に、group_name を自分のグループ名に、account_id を自分のアカウント ID に置き換えてください。

  3. Lake Formation コンソールを開きます。

  4. [テーブル] を選択します。

  5. [アクション] を選択してから、**[アクセス権限]**を選択します。

  6. [プリンシパル] のリストから、[付与] を選択します。

  7. [SAML と Amazon Quick Sight のユーザーとグループ] に、Quick Sight ユーザーまたはグループ ARN を入力します。たとえば、「arn:aws:Quick Sight:region:accountId:user/namespace/username」です。

  8. 該当するデータソースを選択し、[すべてのテーブル] を選択します。テーブルのアクセス権限は [選択][説明] です。

  9. [付与] を選択します。

権限を付与したら、Quick Sight コンソールに戻って、データセットをもう一度作成してみます。

関連情報

Athena を Amazon Quick Sight で使用するのに十分なアクセス権限がない

Amazon S3 と Amazon Athena に対する Amazon Quick Sight のきめ細かなアクセスコントロールのご紹介

AWS Lake Formation で Amazon Quick Sight 作成者に対するきめ細かなアクセス権限を有効にする

コメントはありません