ワークグループの管理 - Amazon Athena

ワークグループの管理

https://console.aws.amazon.com/athena/ で、以下のタスクを実行できます。

Statement 説明
ワークグループの作成

新しいワークグループを作成します。

ワークグループの編集 ワークグループを編集して設定を変更します。ワークグループの名前を変更することはできませんが、同じ設定と別の名前で新しいワークグループを作成することはできます。
ワークグループの詳細の表示 名前、説明、データ使用量の制限、クエリ結果の場所、予想されるクエリ結果のバケット所有者、暗号化、クエリ結果バケットに書き込まれるオブジェクトのコントロールなど、ワークグループの詳細が表示されます。[Override client-side settings (クライアント側設定の上書き)] がオンになっている場合、このワークグループがその設定を強制しているかどうかも確認できます。
ワークグループの削除

ワークグループを削除します。ワークグループ、クエリ履歴、保存されたクエリを削除すると、ワークグループの設定とクエリごとのデータ制限コントロールが削除されます。ワークグループ全体のデータ制限制御は CloudWatch で保持され、個別に削除することができます。

プライマリワークグループは削除できません。

ワークグループの切り替え

アクセス権があるワークグループを切り替えます。

ワークグループ間で保存されたクエリのコピー ワークグループ間で保存されたクエリをコピーします。これは、例えばプレビューワークグループでクエリを作成し、それを非プレビューワークグループで使用できるようにしたい場合などに実行できます。
ワークグループの有効化および無効化

ワークグループを有効または無効にします。ワークグループを無効にすると、そのユーザーはクエリを実行したり、新しい名前付きクエリを作成したりできません。アクセスできる場合でも、メトリクス、データ使用制限コントロール、ワークグループの設定、クエリ履歴、保存されたクエリを表示できます。

クエリを実行するワークグループの指定

クエリを実行する前に、使用するワークグループを Athena に指定する必要があります。ワークグループに対するアクセス権限が必要です。

IAM アイデンティティセンター認証を使用する Athena ワークグループを作成する Athena で IAM アイデンティティセンター ID を使用するには、IAM アイデンティティセンターが有効なワークグループを作成する必要があります。ワークグループを作成したら、IAM アイデンティティセンターのコンソールまたは API を使用して IAM アイデンティティセンターのユーザーまたはグループをワークグループに割り当てることができます。

ワークグループの作成

ワークグループを作成するには、CreateWorkgroup API アクションへのアクセス権限が必要です。「ワークグループとタグへのアクセス」および「 ワークグループにアクセスするための IAM ポリシー」を参照してください。タグを追加している場合は、TagResource にアクセス権限を追加する必要もあります。「ワークグループのタグポリシーの例」を参照してください。

コンソールでワークグループを作成するには
  1. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

    
                            展開メニューを選択します。
  2. Athena コンソールのナビゲーションペインで、[Workgroups] (ワークグループ) をクリックします。

  3. [Workgroups] (ワークグループ) ページで、[Create workgroup] (ワークグループを作成する) をクリックします。

  4. [Create workgroup] (ワークグループを作成する) ページで、次のようにフィールドに入力します。

    フィールド 説明
    ワークグループ名 必須。ワークグループの一意の名前を入力します。1~128 文字で入力してください。(A~Z、a~z、0~9、_、-、.)。この名前は変更できません。
    説明 オプション。ワークグループの説明を入力します。最大 1024 文字を含めることができます。
    [Choose the type of engine] (エンジンのタイプを選択する)

    Amazon S3 のデータに対してアドホック SQL クエリを実行する場合、または事前構築済みのデータソースコネクタを使用して、Amazon S3 の外部のさまざまなデータソースに対してフェデレーテッドクエリを実行する場合には、[Athena SQL] を選択します。Athena クエリエディタ、AWS CLI、または Athena API を使用してクエリを実行できます。

    Python と Apache Spark を使用して Jupyter Notebook アプリケーションを作成、編集、実行する場合には、[Apache Spark] を選択します。Jupyter Notebook には、コード、テキスト、マークダウン、数学、プロット、リッチメディアを含むセルのリストが含まれています。セルは Athena のインタラクティブなノートブックセッションで、計算として順番に実行されます。Spark 対応ワークグループの作成と設定については、「Athena での Spark 対応ワークグループの作成」を参照してください。

    ワークグループを作成すると、その分析エンジンをアップグレードできますが (例えば、Athena エンジンバージョン 2 から Athena エンジンバージョン 3 へ)、そのエンジンタイプは変更できません。例えば、Athena エンジンのバージョン 3 のワークグループを PySpark エンジンのバージョン 3 のワークグループに変更することはできません。

    クエリエンジンを更新する 新しい Athena エンジンバージョンがリリースされるときに、ワークグループを更新する方法を選択します。Athena にワークグループを更新するタイミングを決定させる、またはエンジンバージョンを手動で選択することができます。詳細については、「Athena エンジンのバージョニング」を参照してください。
    [Authentication mode] (認証モード) [AWS Identity and Access Management (IAM)] を選択してワークグループに IAM 認証またはフェデレーションを使用します。Microsoft Active Directory などの SAML 2.0 ID プロバイダーのユーザーやグループなどのワークフォースアイデンティティをサポートしたい場合は、[IAM アイデンティティセンター] を選択してください。詳細については、「AWS IAM Identity Center ユーザーガイド」の「Trusted identity propagation across applications」を参照してください。
    IAM アイデンティティセンターにアクセスするためのサービスロール Athena には、ユーザーに代わって IAM アイデンティティセンターにアクセスするための IAM アクセス許可が必要です。IAM サービスロールの詳細については、「IAM ユーザーガイド」の「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。
    クエリ結果の場所

    オプション。Amazon S3 バケットまたはプレフィックスへのパスを入力します。このバケットとプレフィックスは、指定する前に存在している必要があります。

    注記

    コンソールでクエリを実行する場合、クエリ結果の場所の指定はオプションです。ワークグループまたは [Settings (設定)] で指定しない場合、Athena はデフォルトのクエリ結果の場所を使用します。API またはドライバを使用してクエリを実行する場合、個々のクエリには OutputLocation、またはワークグループには WorkGroupConfiguration を使って、2 つの場所の少なくとも 1 つにクエリ結果の場所を指定する必要があります

    予想されるバケット所有者 オプション。出力先バケットの所有者になると予想される AWS アカウント の ID を入力します。これは追加のセキュリティ対策です。バケット所有者のアカウント ID がここで指定した ID と一致しない場合、バケットに出力できません。詳細については、「Amazon S3 ユーザーガイド」の「バケット所有者条件によるバケット所有者の確認」を参照してください。
    注記

    予期されるバケット所有者の設定は、Athena クエリの結果の出力先として指定した Amazon S3 内の場所にのみ適用されます。これは、外部 Simple Storage Service (Amazon S3) バケット内のデータソースの場所、CTASINSERT INTO の書き込み先のテーブルの場所、UNLOAD ステートメントの出力場所、串刺検索のバケットのスピルオペレーション、別のアカウントのテーブルに対して実行される SELECT クエリなど、他の Amazon S3 ロケーションには適用されません。

    クエリ結果に対するフルコントロールをバケット所有者に割り当てる

    このフィールドは、デフォルトでは選択されていません。これを選択し、クエリ結果の場所バケットで ACL が有効になっている場合、クエリ結果に対するフルコントロールアクセスがバケット所有者に付与されます。たとえば、クエリ結果の場所を別のアカウントが所有している場合に、このオプションを使用して、クエリ結果の所有権とフルコントロールを他のアカウントに付与することができます。

    バケットの S3 オブジェクトの所有権の設定が [Bucket owner preferred] (バケット所有者推奨) となっている場合、バケット所有者は、このワークグループから書き込まれたすべてのクエリ結果オブジェクトも所有します。たとえば、外部アカウントのワークグループでこのオプションが有効になっており、そのクエリ結果の場所がアカウントの Simple Storage Service (Amazon S3) バケットに設定されている場合に、このバケットの S3 オブジェクトの所有権が [Bucket owner preferred] (バケット所有者推奨) と設定されていると、外部ワークグループのクエリ結果を所有し、フルコントロールアクセスを持つことになります。

    クエリ結果バケットの S3 オブジェクトの所有権設定が [Bucket owner enforced] (バケット所有者の強制) となっているときにこのプションを選択しても、効果はありません。詳細については、「Simple Storage Service (Amazon S3) ユーザーガイド」の「オブジェクトの所有権の設定」を参照してください。

    クエリ結果の暗号化

    オプション。Amazon S3 に保存されている結果を暗号化します。選択すると、ワークグループのすべてのクエリは暗号化されます。

    選択すると、[Encryption type (暗号化タイプ)]、[Encryption key (暗号化キー)] を選択して、[KMS Key ARN (KMS キー ARN)] を入力できます。

    キーがない場合は、AWS KMS コンソールを開いて作成します。詳細については、「デベロッパーガイド」の「AWS Key Management Serviceキーの作成」を参照してください。

    暗号化タイプを最小暗号化として設定

    オプション。このオプションを選択すると、ワークグループのすべてのユーザーに対して、クエリ結果に暗号化の最小限のタイプを強制できます。このオプションを選択すると、暗号化タイプの階層を示す表が表示されます。この表には、特定の暗号化タイプを最小限として指定した場合に、ワークグループユーザが使用できる暗号化タイプも表示されます。このオプションを使用するには、[クライアント側設定の上書き] を選択しないでください。

    詳細については、「ワークグループの最小暗号化の設定」を参照してください。

    S3 Access Grants を有効にする 認証モードとして [IAM アイデンティティセンター] を選択すると、このフィールドがデフォルトで選択されます。このオプションを選択すると、IAM アイデンティティセンターのユーザーまたはグループベースのアクセス権限が Amazon S3 ロケーションに適用されます。
    ユーザー ID ベースの S3 プレフィックスを作成する このオプションを選択すると、Athena はクエリ結果を保存するときに Amazon S3 プレフィックスを作成します。プレフィックスはユーザーの IAM アイデンティティセンターのユーザー ID に基づいています。
    [Publish query metrics to CloudWatch] (クエリメトリクスを CloudWatch に発行) このフィールドは、デフォルトで選択されています。クエリメトリクスを CloudWatch に発行します。「CloudWatch メトリクスによる Athena クエリのモニタリング」を参照してください。
    [Override client-side settings (クライアント側設定の上書き)] このフィールドは、デフォルトでは選択されていません。選択すると、ワークグループ設定はワークグループのすべてのクエリに適用され、クライアント側の設定を上書きします。詳細については、「ワークグループ設定がクライアント側の設定を上書きする」を参照してください。
    リクエスタ支払い S3 バケット

    オプション。ワークグループユーザーが、リクエスタ支払いとして設定された Amazon S3 バケットに保存されているデータでクエリを実行する場合は、[Turn on queries on requester pays buckets in Amazon S3] (Amazon S3 のリクエスタ支払いバケットでのクエリをオンにする) を選択します。クエリを実行しているユーザーのアカウントには、クエリに関連付けられた該当するデータアクセスの料金とデータ転送料金が請求されます。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「リクエスタ支払いバケット」を参照してください。

    [Manage per query data usage control] (クエリごとのデータ使用量の制御を管理) オプション。クエリがスキャンできるデータの最大量の制限を設定します。ワークグループに対してクエリごとの制限を 1 つだけ設定できます。この制限は、ワークグループのすべてのクエリに適用され、クエリが制限を超えるとキャンセルされます。詳細については、「データ使用量の制御制限の設定」を参照してください。
    ワークグループのデータ使用に関するアラート オプション。このワークグループで実行しているクエリが特定の期間内に指定した量のデータをスキャンする際、複数のアラートしきい値を設定します。アラートは Amazon CloudWatch アラームを使用して実装され、ワークグループ内のすべてのクエリに適用されます。詳細については、『Amazon CloudWatch ユーザーガイド』の「Amazon CloudWatch アラームの使用」を参照してください。
    タグ オプション。ワークグループに 1 つ以上のタグを追加します。タグは、Athena ワークグループリソースに割り当てるラベルです。キーと値から構成されます。AWS タグ付けのベストプラクティスを使用して、一貫性のあるタグのセットを作成し、目的、所有者、環境に基づいてワークグループを分類します。IAM ポリシーでタグを使用したり、課金コストを管理することもできます。同じワークグループに重複したタグキーを使用しないでください。詳細については、「Athena リソースへのタグ付け」を参照してください。
  5. [Create workgroup] (ワークグループの作成) を選択します。ワークグループが [Workgroups] (ワークグループ) ページのリストに表示されます。

また、CreateWorkGroup API オペレーションを使用してワークグループを作成することもできます。

重要

ワークグループを作成したら、ワークグループ関連のアクションを実行できるようにする ワークグループにアクセスするための IAM ポリシー IAM を作成します。

ワークグループの編集

ワークグループを編集するには、UpdateWorkgroup API オペレーションへのアクセス権限が必要です。「ワークグループとタグへのアクセス」および「 ワークグループにアクセスするための IAM ポリシー」を参照してください。タグを追加または編集している場合、TagResource へのアクセス権限も必要です。「ワークグループのタグポリシーの例」を参照してください。

コンソールでワークグループを編集するには
  1. Athena コンソールのナビゲーションペインで、[Workgroups] (ワークグループ) をクリックします。

  2. [Workgroups] (ワークグループ) ページで、編集するワークグループのボタンを選択します。

  3. [Actions]、[Edit] の順に選択します。

  4. 必要に応じて、フィールドの値を変更します。フィールドのリストについては、「ワークグループの作成」を参照してください。ワークグループの名前を除くすべてのフィールドを変更できます。名前を変更する必要がある場合は、新しい名前と同じ設定で別のワークグループを作成してください。

  5. [Save changes] (変更の保存) を選択します。更新されたワークグループが [Workgroups] (ワークグループ) ページのリストに表示されます。

ワークグループの詳細の表示

各ワークグループの詳細を表示できます。詳細には、ワークグループの名前、説明、有効になっているか無効になっているか、ワークグループで実行されるクエリに使用される設定 (クエリ結果の場所や予想されるバケット所有者、暗号化、クエリ結果バケットに書き込まれるオブジェクトのコントロールなど) が含まれます。ワークグループにデータ使用量の制限がある場合は、それらも表示されます。

ワークグループの詳細を表示するには
  1. Athena コンソールのナビゲーションペインで、[Workgroups] (ワークグループ) をクリックします。

  2. [Workgroups] (ワークグループ) ページで、表示するワークグループのリンクを選択します。ワークグループの [Overview Details] (概要の詳細) ページが表示されます。

ワークグループの削除

アクセス権限がある場合は、ワークグループを削除できます。プライマリワークグループは削除できません。

アクセス権限がある場合は、いつでも空のワークグループを削除できます。保存したクエリが含まれているワークグループを削除することもできます。この場合、ワークグループの削除に進む前に、保存されたクエリが削除されることを Athena が警告します。

ワークグループにいる間にワークグループを削除した場合、コンソールは焦点をプライマリワークグループに切り替えます。アクセスできる場合は、クエリを実行して設定を表示します。

ワークグループを削除すると、その設定とクエリごとのデータ制限コントロールは削除されます。ワークグループ全体のデータ制限制御は CloudWatch で保持され、そこで必要に応じて削除することができます。

重要

ワークグループを削除する前に、そのユーザーが引き続きクエリを実行できる他のワークグループに属していることを確認してください。ユーザーの IAM ポリシーが、ユーザーにこのワークグループのみでクエリの実行を許可していた場合にそのワークグループを削除すると、ユーザーはクエリを実行する許可を失います。詳細については、「Example policy for running queries in the primary workgroup」を参照してください。

コンソールでワークグループを削除するには
  1. Athena コンソールのナビゲーションペインで、[Workgroups] (ワークグループ) をクリックします。

  2. [Workgroups] (ワークグループ) ページで、削除するワークグループのボタンを選択します。

  3. [アクション][削除] の順に選択します。

  4. [Delete workgroup] (ワークグループを削除する) の確認プロンプトで、ワークグループの名前と入力し、[Delete] (削除) を選択します。

API オペレーションでワークグループを削除するには、DeleteWorkGroup アクションを使用します。

ワークグループの切り替え

両方のワークグループにアクセス権限がある場合は、あるワークグループから別のワークグループに切り替えることができます。

各ワークグループで最大 10 個のクエリタブを開くことができます。ワークグループを切り替えると、クエリタブは最大 3 つのワークグループに対して開いたままになります。

ワークグループを切り替えるには
  1. Athena コンソールで、右上の [Workgroups] (ワークグループ) オプションを使用して、ワークグループを選択します。

  2. [Workgroup workgroup-name setting] (ワークグループ (ワークグループ名) の設定) ダイアログボックスが表示されたら、[Acknowledge] (承認する) を選択します。

[Workgroup] (ワークグループ) オプションには、切り替えたワークグループの名前が表示されます。これで、このワークグループでクエリを実行できます。

ワークグループ間で保存されたクエリのコピー

現在、Athena コンソールには、保存されたクエリを 1 つのワークグループから別のワークグループに直接コピーするオプションはありませんが、以下の手順を使用することで、同じタスクを手動で実行することができます。

ワークグループ間で保存されたクエリをコピーする
  1. Athena コンソールで、クエリをコピーするワークグループから、[Saved queries] (保存されたクエリ) タブをクリックします。

  2. コピーする保存されたクエリのリンクを選択します。Athena により、クエリエディタでクエリが開かれます。

  3. クエリエディタで、クエリテキストを選択してから Ctrl+C を押してそれをコピーします。

  4. 宛先ワークグループに切り替えるか、ワークグループを作成してから、それに切り替えます。

  5. クエリエディタで新しいタブを開き、Ctrl+V を押して新しいタブにテキストを貼り付けます。

  6. クエリエディタで [Save as] (名前を付けて保存) をクリックして、クエリを宛先のワークグループに保存します。

  7. [Choose name] (名前の選択) ダイアログボックスで、クエリの名前とオプションの説明を入力します。

  8. [Save] を選択します。

ワークグループの有効化および無効化

アクセス権限がある場合は、API オペレーションを使用するか、JDBC および ODBC ドライバーを使用して、コンソールでワークグループを有効化または無効化できます。

ワークグループを有効化または無効化するには
  1. Athena コンソールのナビゲーションペインで、[Workgroups] (ワークグループ) をクリックします。

  2. [Workgroup] (ワークグループ) ページで、ワークグループのリンクを選択します。

  3. 右上の [Enable workgroup] (ワークグループの有効化) または [Disable workgroup] (ワークグループの無効化) を選択します。

  4. 確認プロンプトで、[Enable] (有効化) または [Disable] (無効化) を選択します。ワークグループを無効にすると、そのユーザーはその中でクエリを実行したり、新しい名前付きクエリを作成したりできません。ワークグループを有効にした場合、ユーザーはそれを使用してクエリを実行できます。

クエリを実行するワークグループの指定

使用するワークグループを指定するには、ワークグループに対するアクセス許可が必要です。

使用するワークグループを指定するには
  1. 使用する予定のワークグループでクエリを実行できるアクセス権限であることを確認します。詳細については、「 ワークグループにアクセスするための IAM ポリシー」を参照してください。

  2. ワークグループを指定するには、次のいずれかのオプションを使用してください。

    • Athena コンソールを使用している場合は、ワークグループを切り替えてワークグループを設定します。

    • Athena API オペレーションを使用している場合は、API アクションにワークグループ名を指定します。例えば、以下のように StartQueryExecution でワークグループ名を設定できます。

      StartQueryExecutionRequest startQueryExecutionRequest = new StartQueryExecutionRequest() .withQueryString(ExampleConstants.ATHENA_SAMPLE_QUERY) .withQueryExecutionContext(queryExecutionContext) .withWorkGroup(WorkgroupName)
    • JDBC または ODBC ドライバーを使用している場合、Workgroup 設定パラメータを使用して接続文字列にワークグループ名を設定します。ドライバーがワークグループ名を Athena に渡します。次の例のように、接続文字列にワークグループパラメータを指定します。

      jdbc:awsathena://AwsRegion=<AWSREGION>;UID=<ACCESSKEY>; PWD=<SECRETKEY>;S3OutputLocation=s3://<athena-output>-<AWSREGION>/; Workgroup=<WORKGROUPNAME>;

ワークグループの最小暗号化の設定

Athena SQL ワークグループの管理者として、ワークグループからのすべてのクエリ結果に Amazon S3 で最小限の暗号化を強制できます。この機能を使用すると、クエリ結果が暗号化されていない状態で Amazon S3 バケットに保存されないようにすることができます。

最小暗号化が有効になっているワークグループのユーザーがクエリを送信する場合、設定した最小レベル、または使用可能な場合はそれ以上のレベルの暗号化しか設定できません。Athena は、ユーザーがクエリを実行したときに指定されたレベル、またはワークグループに設定されたレベルのいずれかでクエリ結果を暗号化します。

以下のレベルが使用可能です。

  • Basic – Amazon S3 マネージドキー(SSE-S3)を用いたサーバー側の暗号化。

  • Intermediate – KMS マネージドキー(SSE-KMS)を用いたサーバー側の暗号化。

  • Advanced – KMS マネージドキー(CSE-KMS)を用いたクライアント側の暗号化。

考慮事項と制約事項

  • Apache Spark 対応のワークグループでは、暗号化の下限設定機能は使用できません。

  • 最小限の暗号化機能は、ワークグループが「クライアント側の設定を上書き」オプションを有効にしていない場合にのみ機能します。

  • ワークグループで [クライアント側の設定を上書き] オプションが有効になっている場合は、ワークグループの暗号化設定が優先され、最小暗号化設定は影響を受けません。

  • この機能を有効にするためのコストはかかりません。

ワークグループの最小限の暗号化を有効にする

ワークグループを作成または更新するときに、Athena SQL ワークグループからのクエリ結果の最小暗号化レベルを有効にできます。これを行うには、Athena コンソール、Athena API、または AWS CLI を使用できます。

Athena コンソールを使用して最小限の暗号化を有効にします

Athena コンソールを使用してワークグループの作成または編集を開始するには、「ワークグループの作成」または「ワークグループの編集」を参照してください。ワークグループを設定する際は、以下の手順で最小限の暗号化を有効にしてください。

ワークグループのクエリ結果において最小暗号化レベルを設定するには
  1. [追加設定] セクションで、[設定] を展開します。

  2. [クライアント側の設定を上書き]オプションを解除するか、選択されていないことを確認します。

  3. [追加設定] セクションで、[クエリ結果設定] を展開します。

  4. [クエリ結果を暗号化] オプションを選択します。

  5. [暗号化タイプ] では、ワークグループのクエリ結果に Athena が使用する暗号化方法 (SSE_S3SSE_KMS、または CSE_KMS) を選択します。これらの暗号化タイプは、基本、中級、および上級のセキュリティレベルに対応しています。

  6. 暗号化の最小レベルとして選択した暗号化方法をすべてのユーザーに強制するには、「暗号化方法 を最小暗号化として設定」を選択します。

    このオプションを選択すると、選択した暗号化タイプが最小になったときにユーザーに許可される暗号化階層と暗号化レベルが表に表示されます。

  7. ワークグループを作成するか、ワークグループ設定を更新したら、[ワークグループを作成] または [変更を保存] を選択します。

Athena API または AWS CLI を使用して、最小限の暗号化を有効にする

CreateWorkGroup API または UpdateWorkgroup API を使用して Athena SQL ワークグループを作成または更新する場合は、EnforceWorkgroupConfigurationfalse に、EnableMinumEncryptionConfigurationtrue に設定し、EncryptionOption を使用して暗号化の種類を指定します。

AWS CLI では、create-work-group または update-work-group コマンドを --configuration または --configuration-updates パラメータとともに使用して API のパラメータに対応するオプションを指定します。