Amazon Athenaを使った別アカウントのAmazon S3へのクエリ発行について

当社内でクラウド関連商材の営業企画業務をしている中村と申します。
今回はAmazon Athenaを使った別アカウントのAmazon S3に対するクエリ発行について解説したいと思います。

はじめに

AWSを利用してデータ分析を実施していると、別アカウントのAmazon S3に格納しているデータに対して分析をしたくなるシーンがあるかと思います。
今回はAmazon Athenaを使った別アカウントにあるAmazon S3内の暗号化されたデータに対するクエリ発行を行う方法について解説したいと思います。
以下、S3に暗号化されたデータを保持しているアカウントを”アカウントA”と呼び、暗号化されたデータに対してAmazon Athenaを使ってクエリを行うアカウントを”アカウントB”と呼びます。

1. 暗号化に利用するカスタマー管理キーを作成(アカウントAでの作業)

先ずは暗号化に利用するカスタマー管理キーを作成します。AWSコンソールにログイン後、検索バーより”KMS”と入力し、AWS Key Management Serviceの画面に遷移します。画面左メニューリストより”カスタマー管理型のキー”を選択し”キーの作成”を選択します。

デフォルトの設定のまま”次へ”を選択します。

任意のエイリアスを入力し、”次へ”を選択します。

次に遷移する画面にてキーの管理やキーの利用が可能なIAMユーザやIAMロールを選択することが可能です。利用するIAMユーザやIAMロールを選択ください。
次に遷移する画面にてキーポリシーを設定することが可能です。

キーポリシーに以下の通りのポリシーを追加して”完了”を選択します。

{
    "Sid": "Allow use of the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "[利用許可を与えたいアカウントBのリソースのARN]"
    },
    "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
    ],
    "Resource": "*“
}

2. Amazon S3バケットの作成と暗号化したデータのアップロード(アカウントAでの作業)

次に暗号化したデータを格納するAmazon S3バケットを作成します。検索バーより”S3”と入力し、Amazon S3の画面に遷移します。”バケットを作成”を選択し、バケット名を入力の上、利用するリージョンを選択し他はデフォルトの設定のまま”バケットを作成”を選択します。

作成が完了したバケットを選択し、”アップロード”を選択します。

データのファイルをアップロードし、”プロパティ”タブを選択します。

“暗号化キーを指定する”、“AWS Key Management Serviceキー”、”AMS KMSキーから選択する”を選択し、先ほど作成したカスタマー管理キーを選択します。
“アップロード”を選択します。

次に、”アクセス許可”タブからバケットポリシーを設定していきます。

バケットポリシーの”編集”を選択します。
バケットポリシーとして以下を入力し、”変更の保存”を選択します。

{
    "Version": "2012-10-17",
    "Id": "ReadBucketPolicy1",
    "Statement": [
        {
            "Sid": "allow-data-account",
            "Effect": "Allow",
            "Principal": {
                "AWS": "[利用許可を与えたいアカウントBのリソースのARN]"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3::: [新しく作成したバケット名]/*",
                "arn:aws:s3::: [新しく作成したバケット名]"
            ]
        }
    ]
}

これで、アカウントAでの作業は終了となります。

3. IAMポリシーの作成と利用(アカウントBでの作業)

最後にアカウントBでアカウントAのカスタマー管理キーを作成可能なポリシーを作成し、Amazon Athenaでのクエリを実行するリソースにポリシーをアタッチします。検索バーより”IAM”と入力し、IAMの画面に遷移します。画面左メニューリストより”ポリシー”を選択し”ポリシーを作成”を選択します。
“JSON”タブを選択、以下のポリシーを入力し、”次のステップ”を選択します。

	1.	{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "readAccountPolicy",
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:Encrypt",
                "kms:GenerateDataKey",
                "kms:ReEncrypt*"
            ],
            "Effect": "Allow",
            "Resource": "[アカウントAで作成したカスタマー管理キーのARN]"
        }
    ]
}

ポリシーの名前と説明を入力し”ポリシーの作成”を選択します。
後は、作成したポリシーを利用したいリソースにアタッチして作業は完了です。
(なお、本記事では割愛しますが、今回作成したポリシーとは別にAmazon S3やAmazon Athenaの利用におけるアクセス権限の設定は別途必要となります。)

4. Amazon Athenaからクエリ(アカウントBでの作業)

実際にAmazon Athenaを利用してクエリを発行してみたいと思います。
検索バーより”athena”と入力し、Amazon Athenaの画面に遷移します。
アカウントAのAmazon S3バケット内のデータを指定したテーブル作成用のクエリを発行し、テーブルを作成ください。
作成したテーブルに対してクエリ発行できましたでしょうか?

あとがき

今回は暗号化された別アカウントのAmazon S3に格納されているデータに対してのAmazon Athenaによるクエリの方法について解説いたしました。
本記事をご覧いただいた方の役に立つと幸いです。

参考:AthenaでのAmazon S3バケットへのクロスアカウントアクセス

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/cross-account-permissions.html別ウィンドウで開きます

クラウドの導入・運用に関する
ご相談、お問い合わせをお待ちしております。

無料ダウンロード

自社のクラウド導入に必要な知識、ポイントを
このに総まとめ!

あなたはクラウド化の
何の情報を知りたいですか?

  • そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
  • 【AWS・Azure・Google Cloud】
    どれが自社に最もマッチするの?
  • 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
  • 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?

初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。

NTT東日本では
そんなあなたにクラウド導入に必要な情報を

1冊の冊子にまとめました!

クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・

  • システムインフラの維持にかかるトータルコストがあまり変わらない。。
  • 情シス担当者の負担が減らない。。
  • セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
  • そもそも”クラウド化”とは?
    その本質的なメリット・デメリット
  • 自社にとって
    最適なクラウド環境構築のポイント
  • コストを抑えるため
    具体的なコツ
  • 既存環境からスムーズにクラウド化
    実現するためのロードマップ

など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。

クラウドのわからない・
面倒でお困りのあなたへ

クラウドのご相談できます!
無料オンライン相談窓口

NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!

NTT東日本が選ばれる5つの理由

  • クラウド導入を
    0からワンストップでサポート可能!
  • 全体最適におけるコスト効率・業務効率の改善
    中立的にご提案
  • クラウド環境に問題がないか、
    第3者目線でチェック
    してもらいたい
  • 安心の24時間・365日の対応・保守
  • NTT東日本が保有する豊富なサービスの組み合わせで
    ”課題解決”と”コスト軽減”を両立

特に以下に当てはまる方はお気軽に
ご相談ください。

  • さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
  • オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
  • オンプレミスとクラウド移行した際のコスト比較を行いたい
  • AWSとAzure、どちらのクラウドが自社に適切かわからない
  • クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
  • クラウド利用中、ネットワークの速度が遅くて業務に支障がでている

クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。

ページ上部へ戻る