Amazon Athena に接続できない - Amazon QuickSight

重要:Amazon QuickSight 分析ワークスペースを再設計しました。コンソールの新しい外観を反映していないスクリーンショットや手順のテキストが表示される場合があります。 QuickSight 現在、スクリーンショットと手順のテキストを更新しています。

機能または項目を検索するには、クイック検索バーを使用します。

QuickSightの新しい外観について詳しくは、「Amazon での新しい分析機能の紹介」を参照してください QuickSight。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Athena に接続できない

   対象者: Amazon QuickSight 管理者 

このセクションでは、Athena への接続に関するトラブルシューティングについて説明します。

Amazon Athena に接続できない場合、クエリの実行時に、アクセス許可が設定されていないことを示す、不十分なアクセス許可によるエラーが発生する場合があります。Amazon が QuickSight Athena に接続できることを確認するには、次の設定を確認します。

  • AWS Amazon 内の リソースのアクセス許可 QuickSight

  • AWS Identity and Access Management (IAM) ポリシー

  • Amazon S3 の場所

  • クエリ結果の場所

  • AWS KMS キーポリシー (暗号化されたデータセットの場合のみ)

詳細については、以下を参照してください。その他の Athena の問題のトラブルシューティングについては、「Amazon で Amazon Athena を使用する場合の接続の問題 QuickSight」を参照してください。

Amazon が Athena QuickSight の使用を許可していることを確認します。

   対象者: Amazon QuickSight 管理者 

以下の手順を使用して、Amazon が Athena の使用 QuickSight を正常に承認していることを確認します。AWS リソースへのアクセス許可は、すべての Amazon QuickSight ユーザーに適用されます。

このアクションを実行するには、Amazon QuickSight 管理者である必要があります。アクセス権があるかどうかを確認するには、右上のプロファイルからメニューを開くときに 管理 QuickSight オプションが表示されていることを確認します。

Amazon QuickSight が Athena にアクセスすることを許可するには
  1. プロファイル名 (右上) を選択します。管理 QuickSight を選択し、セキュリティとアクセス許可 を選択します。

  2. QuickSight へのアクセスAWS のサービスで、 を追加または削除を選択します。

  3. リストで Athena を検索します。Athena のチェックボックスをオフにしてからもう一度オンにして、Athena を有効にします。

    次に、[Connect both (両方を接続)] を選択します。

  4. Amazon からアクセスするバケットを選択します QuickSight。

    ここでアクセスする S3 バケットの設定は、AWS のサービスのリストから Simple Storage Service (Amazon S3) を選択してアクセスするものと同じです。他のユーザーが使用しているバケットを誤って無効にしないように注意してください。

  5. [Finish] (完了) を選択して、選択を確定します。保存せずに終了するには、[Cancel] (キャンセル) を選択します。

  6. 更新を選択して、 への Amazon QuickSight アクセスの新しい設定を保存しますAWS のサービス。または、[Cancel] (キャンセル) を選択して、変更を加えずに終了します。

  7. 完了したら、使用している AWS リージョン が適切であることを確認します。

    このプロセスの最初のステップで AWS リージョンを変更した場合は、以前使用していた AWS リージョンに戻します。

IAM ポリシーが適切な許可を付与することを確認する

   対象者: システム管理者 

AWS Identity and Access Management (IAM) ポリシーは、特定のアクションにアクセス許可を付与する必要があります。IAM ユーザーまたはロールは、Athena がクエリに使用する S3 バケットの入力と出力の両方を読み込み/書き込みできる必要があります。

データセットが暗号化されている場合、IAM ユーザーは指定された AWS KMS キーポリシーのキーユーザーである必要があります。

IAM ポリシーにクエリに S3 バケットを使用するアクセス権限があることを確認するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 使用している IAM ユーザーまたはロールを見つけます。ユーザー名またはロール名を選択し、関連するポリシーを確認します。

  3. ポリシーのアクセス許可が正しいことを確認します。確認するポリシーを選択し、[Edit policy] (ポリシーの編集) を選択します。デフォルトで開くビジュアルエディタを使用します。JSON エディタを開いた場合は、[Visual editor] (ビジュアルエディタ) タブを選択します。

  4. リスト内の S3 エントリを選択し、その内容を確認します。ポリシーでは、リスト、読み取り、書き込みのアクセス権限を付与する必要があります S3 がリストにない場合、または適切なアクセス許可がない場合は、ここで追加します。

Amazon と連携する IAM ポリシーの例については QuickSight、「」を参照してくださいAmazon の IAM ポリシーの例 QuickSight

IAM ユーザーが S3 の場所に対する読み取り/書き込みアクセス権を持っていることを確認する

   対象者: Amazon QuickSight 管理者 

Amazon から Athena データにアクセスするには QuickSight、まず Athena とその S3 ロケーションが管理 QuickSight画面で承認されていることを確認してください。詳細については、「Amazon が Athena QuickSight の使用を許可していることを確認します。」を参照してください。

次に、関連する IAM アクセス許可を確認します。Athena 接続の IAM ユーザーには、結果が保存される S3 内の場所への、読み込み/書き込みアクセス権が必要です。まず、IAM ユーザーに Athena へのアクセスを許可する AmazonAthenaFullAccess のようなポリシーがアタッチされていることを確認します。Athena に必要な名前を使用してバケットを作成し、 QuickSight がアクセスできるバケットのリストにこのバケットを追加します。結果バケットのデフォルトの場所 (aws-athena-query-results-*) を変更する場合、IAM ユーザーが新しい場所への読み込みと書き込みのアクセス許可を持っていることを確認します。

S3 の URL には、AWS リージョンコードを含めていないことを確認します。たとえば、s3://us-east-1.amazonaws.com/awsexamplebucket/path ではなく s3://awsexamplebucket/path を使用します。誤った S3 URL を使用すると、Access Denied エラーが発生します。

バケットポリシーとオブジェクトアクセスコントロールリスト (ACL、access control list) が、IAM ユーザーがバケット内のオブジェクトにアクセスすることを許可していることも確認します。IAM ユーザーが別の AWS アカウントに属している場合は、「Amazon Athena ユーザーガイド」の「クロスアカウントアクセス」を参照してください。

データセットが暗号化されている場合、IAM ユーザーが指定された AWS KMS キーポリシーのキーユーザーであることを確認します。これは、https://console.aws.amazon.com/kms の AWS KMS コンソールで確認できます。

Athena クエリ結果の場所へのアクセス許可を設定するには
  1. https://console.aws.amazon.com/athena/ で Athena コンソールを開きます。

  2. 使用するワークグループが選択されていることを確認します。

    • 上部の [Workgroup] (ワークグループ) オプションを検証します。これは、Workgroup: group-name の形式を持っています。使用するグループ名である場合は、次のステップまでスキップします。

    • 別のワークグループを選択するには、上部の [Workgroup] (ワークグループ) を選択します。使用するワークグループを選択し、[Switch workgroup] (ワークグループの切り替え) を選択します。

  3. 右上の [Settings] (設定) を選択します。

    (一般的ではありません) 「ワークグループが見つかりません」というエラーが表示された場合は、以下のステップに従って修正します。

    1. 現時点ではエラーメッセージは無視し、代わりに [Settings] (設定) ページで、[Workgroup: group-name] を検索します ワークグループ名はハイパーリンクです。ワークグループ名を開きます。

    2. [Workgroup: <groupname>] ページで、左側の [Edit workgroup] (ワークグループの編集) を選択します。エラーメッセージを閉じます。

    3. [Query result location] (クエリ結果の場所) 近くで、ファイルフォルダアイコン付きの [Select] (選択) ボタンをクリックし、S3 ロケーションセレクターを開きます。

    4. Athena の S3 の場所名の末尾にある小さな矢印を選択します。名前は aws-athena-query-results で始まる必要があります。

    5. (オプション) クエリ結果を暗号化するには、[Encrypt results stored in S3] (S3 に保存されている結果を暗号化する) チェックボックスをオンにします。

    6. [Save (保存)] を選択し、設定を保存します。

    7. エラーが再び表示されない場合は、[Settings] (設定) に戻ります。

      場合によっては、エラーが再び表示されることがあります。この場合は、次のステップを実行します。

      1. [ワークグループ]、[View details] (詳細の表示) の順に選択します。

      2. (オプション) 設定を保持するには、ワークグループの設定を書き留めるか、スクリーンショットを撮ります。

      3. [Create workgroup] (ワークグループの作成) を選択します。

      4. ワークグループを新しいワークグループに置き換えます。正しい S3 の場所と暗号化オプションを設定します。後で必要になるため、S3 の場所を書き留めます。

      5. [Save] (保存) を選択して続行します。

      6. 元のワークグループが不要になった場合は、無効にします。表示される警告を注意して読んでください。無効にすると喪失するものがわかります。

  4. 前のステップでトラブルシューティングによって取得しなかった場合は、右上の [Settings] (設定) を選択し、[Query result location] (クエリ結果の場所) として表示される S3 ロケーションの値を取得します。

  5. [Encrypt query results] (クエリ結果の暗号化) が有効な場合、SSE-KMS または CSE-KMS を使用しているかをチェックします。キーを書き留めます。

  6. https://console.aws.amazon.com/s3/ で S3 コンソールを開き、正しいバケットを開いて、[Permissions] (アクセス許可) タブを選択します。

  7. IAM ユーザーがアクセス権を持っていることを確認するには、[Bucket Policy] (バケットポリシー) を表示します。

    ACL を使用してアクセスを管理する場合は、[Access Control List (アクセスコントロールリスト)]を表示して、アクセスコントロールリスト (ACL)が設定されていることを確認します。

  8. データセットが暗号化されている ([Encrypt query results] (クエリ結果の暗号化) がワークグループ設定で選択されている) 場合は、IAM ユーザーまたはロールがその AWS KMS キーポリシーのキーユーザーとして追加されていることを確認します。AWS KMS 設定には、https://console.aws.amazon.com/kms からアクセスできます。

Athena が使用する S3 バケットへのアクセスを許可するには
  1. https://console.aws.amazon.com/s3/でAmazon S3 コンソールを開きます。

  2. [Query result location] (クエリ結果の場所) で、Athena が使用する S3 バケットを選択します。

  3. [Permissions] (アクセス許可) タブで、アクセス許可を確認します。

詳細については、AWS サポート記事「Amazon Athena でクエリを実行したとき「Access Denied (アクセスが拒否されました)」というエラーが表示される理由を教えてください」を参照してください。