Squadbase logo

AWS Athena

AWS AthenaをSquadbaseに接続するための手順と必要情報の取得方法

必要情報

項目説明
AWS Access Key IDAthena でクエリを実行する権限を持つIAMユーザーまたはロールのアクセスキーIDです。
AWS Secret Access KeyアクセスキーIDに対応するシークレットアクセスキーです。
AWS RegionAthena ワークグループおよびS3 バケットが存在するAWSリージョンです。(例:us-east-1
Athena Workgroup(任意)使用するAthena ワークグループの名前です。S3 Output Locationを指定しない場合は必須です。
S3 Output Location(任意)Athena がクエリ結果を保存するS3 パスです。(例:s3://bucket-name/path/)Athena Workgroupを指定しない場合は必須です。

Athena Workgroup または S3 Output Location のいずれかを必ず指定してください。


取得方法

AWS Access Key ID / AWS Secret Access Key

  1. AWSマネジメントコンソールにログインする
  2. IAMユーザー に移動する
  3. 使用するIAMユーザーを選択する(またはAthena 権限を持つ新しいユーザーを作成する)
  4. セキュリティ認証情報 タブを開く
  5. アクセスキー の項目で アクセスキーを作成 をクリックする
  6. アクセスキーIDシークレットアクセスキー の両方をコピーし、安全な場所に保存する

シークレットアクセスキーは作成時にのみ表示されます。ダイアログを閉じる前に必ずコピーしてください。

IAMユーザーには以下のようなインラインポリシーを設定してください。各 Resource の値は実際の環境に合わせて置き換えてください。

インラインポリシーの設定手順:

  1. IAMユーザーの詳細画面を開く
  2. 権限 タブ → 権限を追加インラインポリシーを作成 をクリックする

IAM権限設定画面

  1. JSON タブを選択し、以下のポリシーを貼り付けて値を置き換える
  2. ポリシー名を入力して保存する
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AthenaQueryAccess",
      "Effect": "Allow",
      "Action": [
        "athena:StartQueryExecution",
        "athena:GetQueryExecution",
        "athena:GetQueryResults",
        "athena:StopQueryExecution",
        "athena:GetWorkGroup"
      ],
      "Resource": [
        "arn:aws:athena:ap-northeast-1:123456789012:workgroup/my-workgroup" // <-- これを具体的な値に置き換える
      ]
    },
    {
      "Sid": "S3QueryResultsAccess",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:GetBucketLocation",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my-athena-results-bucket", // <-- これを具体的な値に置き換える
        "arn:aws:s3:::my-athena-results-bucket/*" // <-- これを具体的な値に置き換える
      ]
    },
    {
      "Sid": "S3DataSourceReadAccess",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my-data-source-bucket", // <-- これを具体的な値に置き換える
        "arn:aws:s3:::my-data-source-bucket/*" // <-- これを具体的な値に置き換える
      ]
    },
    {
      "Sid": "GlueCatalogAccess",
      "Effect": "Allow",
      "Action": [
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetPartition",
        "glue:GetPartitions"
      ],
      "Resource": [
        "arn:aws:glue:ap-northeast-1:123456789012:catalog", // <-- これを具体的な値に置き換える
        "arn:aws:glue:ap-northeast-1:123456789012:database/my_database", // <-- これを具体的な値に置き換える
        "arn:aws:glue:ap-northeast-1:123456789012:table/my_database/*" // <-- これを具体的な値に置き換える
      ]
    }
  ]
}

AWS Region

Athena のワークグループおよび関連するS3 バケットが存在するリージョンのIDを使用します。

リージョンIDの例:

リージョンID
米国東部(バージニア北部)us-east-1
米国西部(オレゴン)us-west-2
アジアパシフィック(東京)ap-northeast-1
欧州(アイルランド)eu-west-1

AWSマネジメントコンソールの右上でリージョンを確認できます。

Athena Workgroup

  1. AWSマネジメントコンソールで Athena に移動する
  2. 左サイドバーの ワークグループ をクリックする
  3. 使用したいワークグループ名を取得する(デフォルトは primary

ワークグループにクエリ結果の保存場所が設定されている場合、S3 Output Locationを別途指定する必要はありません。

S3 Output Location

Athena がクエリ結果を保存するS3 バケットのパスです。AWSマネジメントコンソールの S3 に移動し、使用するバケットを選択して確認してください。

形式:s3://バケット名/任意のプレフィックス/