11/12(木)ビジネスパーソンにAI活用を。ナレコムAI使い方セミナー

セミナー内容

withコロナでDXの推進が急務になっている中、データをうまく使った新しい価値提供や、生産性向上のための取り組みを多くの企業が課題としております。
その中でも成功している企業では、「できることから小さくはじめる」、「トライ&エラー、PoCを繰り返し実施」、「体制、プロジェクト人選」等の工夫を行っております。

今回のセミナーでは上記の背景があるなか、専門スキルを必要とせずに数クリックで機械学習のモデルを自動的に構築/予測分析でき、クイックにビジネスに活用できるプラットフォーム「ナレコムAI」についてご紹介致します。

ナレコムAIが必要となる背景やユースケースについての解説のみならず、実際の画面を見ながらのデモンストレーションも実施させていただきます。

※ナレコムAIのWEBサイト: https://narekomu-ai.com/

対象となるお客様

  • 機械学習を自業務の活用を検討している方
  • データをお持ちで業務の効率化を模索している方
  • AIツールの導入を検討、調査されている方

本セミナーのゴール

  • ナレコムAIがどういったものかを知ることができます
  • ナレコムAIを使って、いますぐデータ分析を開始する

ナレコムAIとは?

AI(人工知能)・機械学習といった高度な技術を簡単に利用することが出来るクラウド型サービスです。
高いスキルを持った専門家なしには利用することが難しかった技術を、専門家不要で利用でき、データ分析の敷居を下げるためデータサイエンティストが担う 「機械学習のモデル構築・テスト・活用」をカバーするソリューションとなっております。
2020-11-05_11h25_29.png

アジェンダ

  • DX推進における課題と工夫している企業が取り組んでいること
  • ナレコムAIの概要紹介
  • ユースケース
  • デモ
  • QA

タイムテーブル(予定)

時間 内容
12時55分 受付開始
13時~ 開会のご挨拶
~13時15分 セミナー
~13時40分 デモ
~13時55分 QA
14時 閉会の挨拶

日時:2020年 11月12日(木) 13時~14時
場所:オンライン(Microsoft Teams)
参加費:無料

参加方法

当日のウェビナーはteamsを使用して開催します。 こちらよりお申し込みいただいた後に、登録完了メールがお手元に届きます。 そちらのメールに当日の参加用 URLが掲載されておりますので、ご確認をお願いします。

下記「プライバシーポリシー」をご確認・ご了承いただいた上で、お申し込みの際はお名前等のご記入をお願いします。 ご協力いただけない場合は当日参加をお断りさせていただく場合がございますので、予めご了承ください。
プライバシーポリシー / 個人情報の取り扱いについて

株式会社ナレッジコミュニケーションについてのご紹介

ナレッジコミュニケーションではAmazon Web Services、Microsoft Azure等のクラウドサービスを企業に導入する事業を行っております。
お客様の課題に対してクラウドを使って課題解決のご支援をさせていただいております。

実績掲載

1.ブックリスタ様 事例

https://aws.amazon.com/jp/solutions/case-studies/booklista-knowledgecommunication/

2.全国保証様 事例

https://prtimes.jp/main/html/rd/p/000000014.000004474.html


Databricks E2リリースで新しく追加された機能について

はじめに

2020年9月、AWS上で利用可能なdatabricksのプランに新しく E2 が追加されました。
この記事では、E2の機能について紹介していきます。

プランの概要

E2のプランにすることで、以下の機能が使えるようになります。

  • マルチワークスペースアカウント
  • 顧客管理VPC
  • 安全なクラスター接続
  • ノートブックの顧客管理キー

それぞれの機能について、見ていきます。

1. Multi-workspace accounts

アカウントAPIを使用し、単一のDatabricksアカウントで、複数の新しいDatabricksワークスペースをプログラムで作成することが可能です。作成する各ワークスペースには 異なる構成を設定できます。

2. Customer-managed VPCs

デフォルトでは、Databricksは各ワークスペースのAWSアカウントにVPCを作成しますが、E2の場合、この顧客管理VPC機能により独自のVPCにDatabricksワークスペースを作成することができます。

image.png

3. Secure cluster connectivity

すべてのノードがプライベートIPアドレスのみを持つクラスターを起動し、VPCに開いているポートがなくなることで、安全なクラスター接続が実現できます。

image.png

4. Customer-managed keys for notebooks

ワークスペースの作成中に、CMK(顧客管理キー)と呼ばれる取り消し可能な秘密鍵を追加することができます。CMKとDMK(データ暗号キー)を結合し、ワークスペースにDEK(派生暗号キー)を作成します。

image.png

価格について

11月4日現在では、公式ページでは価格オプションについて確認できませんでした。もしかすると現行のEnterpriseプランに含まれているかもしれませんので、今後確認でき次第追記していきます。

まとめ

これらの機能によって、より安全でスケーラブルに、AWS上でdatabricksプラットフォームを利用することができそうですね。

公式ドキュメント


AWS single sign-on(SSO)でdatabricksにログインしたい

はじめに

本記事ではdatabricks on AWSにAWS single sign-on(SSO)を使用してログインする方法をご紹介いたします。
AWS SSOは無料でかつ簡単な設定で即座に利用できるSSOサービスとなっており、
セキュリティの観点からもぜひとも利用しておきたい機能です。

前提条件

本記事内容はAWS SSOが有効になっているところからスタートします。
未完了の方は以下公式ドキュメントを参考に設定をお願いいたします。
https://docs.aws.amazon.com/ja_jp/singlesignon/index.html

目次

  1. AWS側の設定
  2. databricks側の設定
  3. いざlogin!

本題

1. AWS側の設定

AWS SSOのサービス画面内の左上「アプリケーション」をクリック
image.png

「新規アプリケーションの追加」をクリック
2020-10-20_10h38_09.png

ここでAWS SSO と連携するアプリケーションを選択します
画面中央の「アプリケーションの名前を入力します」の欄に"databricks"と記入
2020-10-20_10h39_49.png

databricksが表示されたらそれをクリック
画面右下の「アプリケーションの追加」をクリックして追加の完了です
2020-10-20_10h40_15.png

アプリケーションの画面に戻るとこのようにdatabricksが追加されていますので
クリックしてアプリケーション情報を確認しましょう
2020-10-20_10h52_40.png

databricks側に登録する情報をコピー、ダウンロードします
「AWS SSOサインインURL」「AWS SSO 発行者URL」をコピーし
「AWS SSO証明書」をダウンロードしておきます
2020-10-20_10h57_37.png

最後に、AWS SSOを使用してdatabricksにloginするユーザを割り当てます
「割り当て済みユーザ」タブ内の「ユーザの割り当て」から設定を行います
ユーザ個人を割り当てることもできますし、
databricksを使用するユーザが多数いる場合はグループを作成しておき、そのグループに割り当てるということも可能です
(この写真の例ではdatabricksという名前のグループに割り当てています)
2020-10-20_11h12_02.png

2. databricks側の設定

databricksのコンソール画面にloginします
右上の人の形のアイコンから「admin console」に移動します
2020-10-20_11h22_13.png

「Single Sign On」のタブをクリック

2020-10-20_13h40_03.png

以下表をもとにAWS側の設定でコピー、ダウンロードした情報を貼り付けていきます
2020-10-20_11h49_26.png

※2つのオプションについて(任意)

  • Allow auto user creation
    →databricksのアカウントを持っていないユーザがAWS SSOでログインしたときに自動的にアカウントを作成する
  • Allow IAM role entitlement auto sync
    →IAM credential passthroughのためのSAML属性からの資格情報を同期する
    (別途IAM credential passthroughの設定が必要なので本記事での説明は割愛します)

「Enable SSO」をクリックして
この画面になったらdatabricks側のSSOの設定が完了です
2020-10-20_13h41_28.png

3. いざlogin!

AWS Portalに入るとこのようにdatabricksアイコンが表示されているのでこのアイコンをクリックします
2020-10-20_12h01_35.png

無事loginできました!
2020-10-20_12h03_42.png

おわりに

今回はAWS SSOでdatabricksにログインする方法についてご紹介しました。
別記事で、databricks各種権限設定についてもご紹介する予定ですので、
そちらも併せてご覧いただければ幸いです。
最後までお読みいただきありがとうございました。


Amazon Rekognition Videoの活用法について考える

はじめに

Amazon Rekognition Videoとは、AWSの提供する機械学習を利用したビデオ分析サービスです。
Rekognition Videoを利用することで、動画中の数千のオブジェクトや顔、コンテンツを正確に検知し、追跡し、認識し、抽出し、節度を検出することができます。

※こちらの記事にて、デモの利用手順をご確認いただけます。
https://qiita.com/JJ33/items/848aaac7bc68a15c56af

3つの主な機能

チーム:動画に登場する人物を識別、追跡
有名人:登場人物が有名人か判定
オブジェクトとアクティビティ:動画内にある人、モノ、シチュエーションまでを解析

検出できるメタ情報

  • 物体(車両やペットなど)
  • シーン(都市やビーチ、結婚式など)
  • アクティビティ(小包の配達やダンスなど)
  • 有名人(有名人の名前と一意のID)
  • テキスト(英語テキストのみ)
  • 動作(ろうそくを吹く、火を消すなど)
  • 不適切なコンテンツ(ヌード、暴力、武器など)

各検索結果や検出にはタイムスタンプが付いているため、詳細なビデオ検索向けのインデックスをすぐに作成できるほか、さらなる分析のために興味のある箇所にすばやく移動することもできます。
また、対象がフレーム内のどの位置で検出されたのかを境界ボックスの座標で教えてくれます。

デモを試した結果

https://www.youtube.com/watch?v=L91yri_Vmbs
こちらの動画を借りてデモを使ってみました。
結果を一部掲載します。
(今回CelebritiesやModeration Labelsは検出されなかったためLabelsとPersonsのみ)

ケース1 ジェット機の前で写真を撮るシーン

2020-10-09_13h14_06.png
■Labels(Confidence 80以上のみ表示)
image.png
ジーンズやヘリコプターも認識できているようです!

■Persons
image.png
4人の人物を検知しています。

ケース2 女の子がドーナツを持っているシーン

2020-10-09_13h16_15.png
■Labelsimage.png
こちらのシーンではホットドッグを検出しています。
正確にはドーナツなのですが、食べ物の種類まで認識しているのはすごいですよね!

■Personsimage.png
先程のシーンと同じ女の子だとわかっているようです!

ケース3 ソファーで写真を撮るシーン

2020-10-09_15h34_03.png
■Labelsimage.png

室内で、シェルフなどの家具があることを認識しています。

■Personsimage.png
シーン1と同じ人物が2人いるとわかっているようです。

ケース4 家に荷物を運ぶシーン

2020-10-09_14h48_10.png

■Labelsimage.png
宅配をしているシーンであることも認識しています!これはすごい!

何に活用できそうか考えてみた

  • 不適切なシーンのカット、または警告表示
  • 検索機能を充実させる(タグ付けや顔検索)
  • 顔認証受付(施設の混雑防止や万引き防止につながる)
  • 人物トラッキングで犯人を捕まえる、行方不明者を捜す
  • 動画を投稿前に節度を検出し、不適切なシーンの公開を防ぐ
  • 検出できたメタデータを自動で組み合わせてハイライト動画の作成
  • 撮った動画を、カテゴリーや人物別で勝手にフォルダに分けるアプリ
  • SNS等で動画メディアを投稿する際、顔検索によって友達を自動でタグ付け
  • 小売業の分析(買い物客の行動、平均年齢層、性別分布、人々が表す感情を分析)
  • コンテンツ流動型広告(見ているコンテンツに見合う広告を選ぶ、良いタイミングで挟むなど)

さいごに

デモを試した結果、十分な精度で色々なメタ情報が得られました。(他の動画では自撮りをしているシーンやラーメンを作っているシーンも認識しました!)
アイデア次第で、顔認証受付やハイライト動画の作成など、様々な用途で活躍できそうだと思いました。今後の展開も楽しみですね。

参考リンク

https://aws.amazon.com/jp/rekognition/video-features/

使用した動画リンク

https://www.youtube.com/watch?v=L91yri_Vmbs


2020年度版初心者でも5分でわかる Amazon EC2について

はじめに

この記事では、AWSの代表的なサービス「Amazon EC2」について、以下をテーマに簡単な言葉でまとめていきます。

  1. EC2とは何か
  2. EC2のメリット
  3. EC2に関する用語
  4. 利用料金について

EC2とは

AWS上で仮想サーバを構築・利用できるサービス。
「Amazon Elastic Compute Cloud」の略称。

EC2のメリット

  • 従量課金制で低コスト
  • 最適なサーバーの作成がボタン1つで可能
  • スペックの変更が柔軟に行える
  • 簡単に冗長化を行える
  • 別サービスと組み合わせやすい

EC2に関する用語

インスタンス

AWS上の仮想サーバーのこと。
必要に応じて複数のインスタンスを立ち上げることで、柔軟なインフラ構築ができる。

AMI (Amazon Machine Image)

OSやソフトウェアの構成を記録したテンプレート。
AMIを使うことで同じ設定のサーバーをいくつも作成できる。
Amazon Linux、CentOS、Red Hat Enterprise Linuxなど。

キーペア

SSH接続において、ログインする際の認証に使用する公開鍵と秘密鍵のペア。
SSHとは、サーバーにインストールしたソフトウェアを操作するときに使用するしくみ。

EBS (Elastic Block Store)

EC2インスタンスと組み合わせて使うストレージボリューム。
ストレージとは、かんたんにいえばデータを記録する場所のこと。

セキュリティグループ

仮想的なファイアウォール機能。
EC2インスタンスへのアクセスを許可し、トラフィック(ネットワークを流れる情報)を制御する。

Elastic IPアドレス

静的な(固定の)グローバルIPアドレス。
EC2のインスタンスは、停止して起動しなおすとグローバルIPアドレスが変わってしまう→サーバーにアクセスできなくなる。
Elastic IPアドレスをインスタンスに結び付けることで、IPアドレスを固定することができる。

ELB(Elastic Load Balancing)

サーバーに集中するアクセスを、複数のサーバーやネットワークに振り分ける機能。

スナップショット

ある時点でのサーバーのディスク状態を保存する機能。
ソフトウェアやOSの更新時に、何かあったときにすぐ戻せるようにバックアップとしてとることが多い。

Auto Scaling

インスタンスの増減を自動で行う機能。
アクセスが少ないときは減らしてコストを削減。
多いときは増やしてアクセスに対応。

EC2の利用料金の考え方

AWSの料金は月に使った分だけ支払う「従量課金制」です。

①インスタンス使用料(稼働している時間×単価)+②EBSの料金(容量×単価)+③通信料金+④その他のオプション

また、AWSにはアカウントを新規作成後12か月間有効な「無料利用枠」というものがあります。
使用できるリソースには制限がありますが、1か月に750時間無料でインスタンスを利用することが可能です。

無料利用枠で使用できるリソース
・インスタンスタイプは t2.micro
・OSは Amazon Linux 1,2、Windows Server、Red Hat Enterprise Linux、SUSE Linux、Ubuntu Server

無料利用枠について詳しく知りたい方はこちら。
https://dev.classmethod.jp/articles/overall-summary-about-aws-free-tier/

おわりに

現在AWSの勉強を始めたばかりですが、今回は代表的なサービスであるAmazon EC2についてまとめました。今後学習を進めていく中で、他のサービスについても調査してまとめていきたいです。

参考書籍/記事


Enterprise Cloud Service Public Preview on AWS - Enterprise Security 編についてまとめて和訳してみた④

はじめに

今回は、2020年6月12日に Vinay Wagh 氏と Abhinav Garg 氏によって投稿されました「 Enterprise Cloud Service Public Preview on AWS 」で紹介されている Enterprise Security の1つである「 Customer managed keys for notebooks 」に関する内容を翻訳し、まとめてみました。

本記事のリンクは下記参照。
■リンク
Customer managed keys for notebooks
Enterprise Cloud Service Public Preview on AWS

エンタープライズセキュリティ

今回の AWS 上での Databricks のエンタープライズクラウドサービスにおけるエンタープライズセキュリティの主な内容は以下の4つです。
今回は、この5つの内の「Notebook の為の顧客管理キー」について、紹介したいと思います。

■エンタープライズセキュリティ
①Data Lake の真のポテンシャルを妨げないセキュリティ
②顧客管理VPC
③セキュアなクラスタ接続
④Notebook の為の顧客管理キー
⑤IAM 証明パススルー

Notebook の為の顧客管理キー

概要

セキュリティを重視する組織は、パブリッククラウドの使用、SaaS アプリケーション、そしてサードパーティサービスのリスクを評価するリスク管理プロセスがあります。
サードパーティのサービスプロバイダのリスクを軽減することで、外部サービスを使用するための強力なケースを構築できます。一部の規制された産業では、管理キーを使用して特定のタイプのデータを暗号化する必要があります。
これは、個人データやその他の機密情報を定期的に使用する部門にとって特に重要です。

ワークスペースノートブックは、主にデータベースの Databricks コントロールプレーン内に保存されます。Databricks プラットフォームでは独自のキーでノートブックを暗号化でき、キーはワークスペースの作成時に提供する必要があります。

操作方法

顧客管理のキーは、コントロールプレーンのワークスペースのノートブックを暗号化します。顧客は、クラウドサービスのキー管理システムのIDで指定された顧客管理キー(CMK)と呼ばれる取り消し可能な秘密キーを提供します。AWS では、顧客キーは AWS Key Management Service(KMS)によって管理されます。

さらに、Databricks では、ワークスペースごとに Databricks が管理するキー(DMK)を作成します。 DMKは、データ暗号化キー(DEK)と呼ばれる結合暗号化キーを生成するために、CMK にラップされます。Databricks は DEK を使用して、ワークスペースのノートブックを暗号化します。

DEK は、数回の読み込み/書き取り操作のためにメモリにキャッシュされ、定期的にメモリから削除されるため、新しいリクエストがあった場合は、クラウドサービスの鍵管理システムへの別のリクエストが必要になります。
キーを削除、あるいは取り消すと、キャッシュ時間間隔の終了時にノートブックの読み取りや書き込みが失敗します。
image.png

ノートブック用の顧客管理キーの追加

顧客管理のノートブックを追加するには、アカウント API を使用してワークスペースを作成する際に CMK を追加する必要があります。

CMK の設定方法:

  1. AWS KMS で対称キーを作成または選択するには、「対称 CMK の作成」または「キーの表示」の手順に従います。
  2. ワークスペース作成の際は、下記の3つの値が必要となるのでコピーを取りましょう。
  • Key ARN
  • Key alias
  • Key region
  1. キーポリシータブで、ポリシー表示に切り替えてキーポリシーを編集し、Databricks がキーを使用して暗号化および復号化処理を実行できるようにします。下記の様に編集します。
[crayon-5fbc14bbadd79669308045/]
  1. キーを登録するには、「アカウント API を使用して新しいワークスペースを作成する」、の「ステップ 4:ノートブック用の顧客管理キーを構成する(オプション)」の指示に従います。

ステップ 4:ノートブック用の顧客管理キーを構成する

おわりに

Notebook の為の顧客管理キーに関するまとめは以上です。
詳細については、元記事をご参照ください。


Enterprise Cloud Service Public Preview on AWS - Enterprise Security 編についてまとめて和訳してみた③

はじめに

今回は、2020年6月12日に Vinay Wagh 氏と Abhinav Garg 氏によって投稿されました「 Enterprise Cloud Service Public Preview on AWS 」で紹介されている Enterprise Security の1つである「 Secure Cluster Connectivity 」に関する内容を翻訳し、まとめてみました。

本記事のリンクは下記参照。
■リンク
Secure Cluster Connectivity
Enterprise Cloud Service Public Preview on AWS

エンタープライズセキュリティ

今回の AWS 上での Databricks のエンタープライズクラウドサービスにおけるエンタープライズセキュリティの主な内容は以下の4つです。
今回は、この5つの内の「セキュアなクラスタ接続」について、紹介したいと思います。

■エンタープライズセキュリティ
①Data Lake の真のポテンシャルを妨げないセキュリティ
②顧客管理VPC
③セキュアなクラスタ接続
④Notebook の為の顧客管理キー
⑤IAM 証明パススルー

セキュアなクラスタ接続

概要

いくつかのデプロイメントタイプと Databricks サブスクリプションには、安全なクラスタ接続がオプションで含まれています。安全なクラスタ接続により、顧客の VPC には開いているポートも無く、Databricks ランタイムワーカにはパブリック IP アドレスもありません。一部の API では、これはパブリック IP(NPIP)と呼ばれます。

  • ネットワークレベルで各クラスタは、クラスタ作成中にコントロールプレーンセキュアクラスタ接続リレーへの接続を開始
  • クラスタはポート 443(HTTPS)を使用してこのセキュアな接続を確立し、Web アプリケーションや REST API に使用されるものとは異なる IP アドレスを使用
  • 新しい Databricks ランタイムジョブの開始やクラスタ管理の実行など、コントロールプレーンが論理的に開始するアクションはリバーストンネルを介してクラスタへの要求として送信される
  • データプレーン(お客様のVPC)には開いているポートが無く、Databricks ランタイムワーカにはパブリック IP アドレスは無い

クラスタ接続のメリット

  • 簡単なネットワーク管理
    • セキュリティグループでのポート構成やネットワークピアリング構成が不要
  • より簡単な承認
    • 優れたセキュリティと単純なネットワーク管理のため、情報管理チームが Databricks を PaaS プロバイダとして承認するのがより簡単に image.png

安全なクラスタ接続の使用

セキュアなクラスタ接続をワークスペースに利用する場合は、マルチワークスペース API を使用し新しいワークスペースを作成する必要があります。既存のワークスペースにセキュアなクラスタ接続の追加はできません。

おわりに

セキュアなクラスタ接続についての紹介は以上です。詳し内容については、本記事をご参照ください。


databricks公式ドキュメントやってみた~Secure access to S3 buckets using instance profiles(後編)~

はじめに

公式ドキュメントやってみたシリーズ第2弾です。
今回のテーマは
「Secure access to S3 buckets using instance profiles」です。
インスタンスプロファイルを使用してセキュアにS3バケットにアクセスする方法をdatabricks公式ドキュメントの手順に従ってやってみたいと思います。

今回の作業内容

今回行う作業は以下の8項目です。

※0.ターゲットS3バケットの作成

  1. S3バケットにアクセスするためのインスタンスプロファイルを作成
  2. ターゲットのS3バケットのバケットポリシーの作成
  3. databricks on AWSデプロイ時のIAMロールの確認
  4. ターゲットS3バケットにアクセスするためのIAMロールをEC2に付与
  5. インスタンスプロファイルをdatabricksにアタッチ
  6. インスタンスプロファイルを使用してクラスタを立ち上げる
  7. ノートブックから今回設定したS3へのアクセスを確認する

作業自体がやや長いのと、
細かいロールやポリシーの設定があるため

  • 前編(0~3)→AWS側の設定
  • 後編(4~7)→databricks側の設定

に分けてやっていきたいと思います。

本題

では、本題に入っていきましょう。

5. インスタンスプロファイルをdatabricksにアタッチ

前編.1で作成したIAMロールを選択し、インスタンスプロファイルARNをコピーします。
image.png

databricksにログインして
右側の人間マークからdatabricks adminコンソールに入る、
image.png

Instance Profileに移動、
image.png

Add Instance Profileをクリック。
image.png

Instance Profile ARNに先ほどコピーしたIAMロールインスタンスプロファイルARNを貼り付けてAddをクリック。
その下の2つの項目に関しては今回はチェックしないで進めたいと思います。
image.png

6. インスタンスプロファイルを使用してクラスタを立ち上げる

先ほど作成したインスタンスプロファイルを使用してクラスターの立ち上げを行います。
すでに作成済みもしくは新しいクラスタのページに移動します。
Advanced Optionsをクリックして項目を表示させると、一番下にInstance Profileを記入する欄がありますのでクリック
先ほど設定したInstance Profileがあると思うので、それを設定してクラスターを立ち上げます。
image.png

7. ノートブックから今回設定したS3へのアクセスを確認する

新しくノートブックを開きます。
名前はなんでもOKで、言語はPython、クラスタはインスタンスプロファイルを設定したものを選択してください。
ノートブックの画面を開いたら下記を実行します。s3-bucket-nameは今回のターゲットS3バケット名を記入します。

[crayon-5fbc14bbaf29c137630614/]

このようにターゲットS3バケットの中身が表示されたら無事今回の作業がうまくいっていることになります。
(この例ではターゲットS3バケット内にsampleとsample2という2つのフォルダを入れているのでこのような結果表示になっています。)
image.png

注)ターゲットS3バケットが空の状態でスクリプトを実行すると対象のディレクトリがありませんという内容のエラーを吐くので、必ずフォルダもしくはファイルを最低1つ入れた状態にしてください。

終わりに

以上がdatabricks公式ドキュメントやってみた~Secure access to S3 buckets using instance profiles(後編)~でした。
今回の内容を活用して、ぜひご自身の目的に合ったセキュアなdatabricks環境構築に取り組んでみてください。
最後までお読みいただきありがとうございました。
本記事がどなたかのお役に立てていれば幸いです。

※本内容はこちらの公式ドキュメントを参考にしております。
https://docs.databricks.com/administration-guide/cloud-configurations/aws/instance-profiles.html


databricks公式ドキュメントやってみた~Secure access to S3 buckets using instance profiles(前編)~

はじめに

公式ドキュメントやってみたシリーズ第2弾です。
今回のテーマは
「Secure access to S3 buckets using instance profiles」です。
インスタンスプロファイルを使用してセキュアにS3バケットにアクセスする方法をdatabricks公式ドキュメントの手順に従ってやってみたいと思います。

今回の作業内容

今回行う作業は以下の8項目です。

※0.ターゲットS3バケットの作成

  1. S3バケットにアクセスするためのインスタンスプロファイルを作成
  2. ターゲットのS3バケットのバケットポリシーの作成
  3. databricks on AWSデプロイ時のIAMロールの確認
  4. ターゲットS3バケットにアクセスするためのIAMロールをEC2に付与
  5. インスタンスプロファイルをdatabricksにアタッチ
  6. インスタンスプロファイルを使用してクラスタを立ち上げる
  7. ノートブックから今回設定したS3へのアクセスを確認する

作業自体がやや長いのと、
細かいロールやポリシーの設定があるため

  • 前編(0~4)→AWS側の設定
  • 後編(5~7)→databricks側の設定

に分けてやっていきたいと思います。

本題

では、本題に入っていきましょう。

0.ターゲットS3バケットの作成

今回の内容では、databricks on AWSのデプロイ時に使用したS3バケットとは別のS3バケットが必要となりますので、お持ちでない方は新たに作成しましょう。
既存のバケットを使用するという方は次に進みます。

1.S3バケットにアクセスするためのインスタンスプロファイルを作成

AWSにログインしてコンソール画面に入ります。
IAMのページに移動します。
サイドバーからロールを選択してロールの作成をクリック。
image.png

信頼されたエンティティの種類を選択→AWSサービス
ユースケースの選択→EC2
を選択して、次のステップに進みます。
image.png

アクセス権限、タグの設定は特に設定不要なのでそのまま進んでOKです。
最後の確認ページでロール名を記入してロールの作成をクリック。
image.png

作成したロールに戻ってインラインポリシーの追加をクリック。
ポリシーの作成ページでJSONのタブを選択し、以下スクリプトをコピぺ。
image.png

s3-bucket-name のところは今回使用するターゲットS3バケット名を記入してください。

[crayon-5fbc14bbaff0c604647206/]

ポリシーの確認に進んでポリシー名を記入し、ポリシーの作成をクリックでOK
作成したロールにもどって、ロールARNをコピーしておきましょう。
image.png

2.ターゲットのS3バケットのバケットポリシーの作成

AWSコンソール画面にもどってS3設定画面に移動します。
ターゲットS3バケット、アクセス権限、バケットポリシーの順で移動します。
バケットポリシーエディター欄で以下スクリプトをコピペします。
arn:aws:iam::aws-account-id-databricks:role/iam-role-for-s3-accessの部分は1.でコピーしたロールARNを貼り付けます。
s3-bucket-nameは今回使用するターゲットS3バケット名を記入します。

[crayon-5fbc14bbaff11532151444/]

こんな感じでコピペできたら保存をクリックします。
image.png

S3バケットポリシーの設定は以上です。

3.databricks on AWSデプロイ時のIAMロールの確認

https://accounts.cloud.databricks.com/registration.html#login
からdatabricksにログインします。
サイドバーからAWS Accountを選択しデプロイに使用したロールARNを確認します。

image.png

4.ターゲットS3バケットにアクセスするためのIAMロールをEC2に付与

AWSの、ロール設定画面に戻ります。
3.で確認したdatabricks on AWS デプロイ時に使用したロールを選択します。
ポリシーの編集で以下スクリプトをコピペします。
arn:aws:iam::aws-account-id-databricks:role/iam-role-for-s3-accessには1.で作成したIAMロールのARNを記入します。
image.png
image.png

[crayon-5fbc14bbaff15233018301/]

編集を終えたらポリシーの確認、変更の保存でOKです。

おわりに

databricks公式ドキュメントやってみた~Secure access to S3 buckets using instance profiles(前編)~
は以上です。
前半でAWS側の設定は完了となりましたので、後半ではそれを使ってdatabricks側の設定作業を行なっていきます。
お読みいただきありがとうございました。
引き続き後半もご覧いただけると幸いです。


Enterprise Cloud Service Public Preview on AWS - Enterprise Security 編についてまとめて和訳してみた②-2

はじめに

今回は、2020年6月12日に Vinay Wagh 氏と Abhinav Garg 氏によって投稿されました「 Enterprise Cloud Service Public Preview on AWS 」で紹介されている Enterprise Security の1つである「 Customer-managed VPC 」のリージョナルエンドポイントについて、まとめました。

本記事のリンクは下記参照。
■リンク
Customer-managed VPC
Enterprise Cloud Service Public Preview on AWS

リージョナルエンドポイント(セキュアなクラスタ接続限定)

カスタママネージド VPC を使用してセキュアなクラスタ接続を行う場合は、AWS グローバルエンドポイントと比較して、より直接的な接続を実現し、コスト削減のために AWS サービスへのリージョナル VPC エンドポイントのみを使用するよう VPC を構成可能です。
以下の4つが、カスタマー管理のVPC を持つ Databricks ワークスペースが到達する必要がある AWS サービスです。

  • STS
  • S3
  • Kinesis
  • RDS (※デフォルトの Databricks メタストアを使用する場合のみ VPC から RDS サービスへの接続が必要)

RDS 以外の3つのサービスにおける、VPCエンドポイントを使用したネットワークの動作、ノートブック、またはクラスターレベルの Spark 構成による動作の変化や構成について説明します。

STS リージョナル VPC エンドポイント概要

AWS STSへのデータプレーンアクセスの場合:

  • デフォルトでは VPC エンドポイントを設定すると、トラフィックは S3 VPC エンドポイントをバイパスし、グローバル STS URL を使用して送信します。全てのトラフィックがVPCエンドポイントを通過するようにするには、追加の設定が必要です。
  • 関連する Spark 構成をノートブック、またはクラスターレベルに追加すると、STS VPC エンドポイントを介してトラフィックが出ます。

Databricks では、アクセスが一時的に使用される場合に備えて、STS グローバル URL へのアクセスを許可する出口装置を構成することをお勧めします。たとえば、最初のワークスペース作成後、ノートブック、またはクラスタ Spark 構成とクラスターポリシのセットアップ前に、Databricks はグローバル URL を使用しなくてはいけません。

S3 リージョナル VPC エンドポイント概要

コントロールプレーン内のアーティファクトとログ保存のための S3 へのデータプレーンアクセスのために VPC エンドポイントを構成すると、次のような動作になります。

  • us-west-2、us-east-1 と us-east-2、リージョンへのトラフィックは S3 VPC エンドポイントを使用
  • us-west-1 のリージョンの場合、関連するエンドポイントがクロスリージョンのため、S3 VPC エンドポイントはバイパスされる

DBFS ルートストレージ用のS3へのデータプレーンアクセスと、VPCリージョン内の独自のS3データストレージ用。

  • デフォルトでは、VPC エンドポイントを設定すると、トラフィックは S3 VPC エンドポイントをバイパスし、グローバル S3 URL を使用して送信します。全てのトラフィックが VPC エンドポイントを通過するようにするには、追加の設定が必要です。
  • ノートブック、またはクラスタレベルで関連する Spark 構成を追加すると、トラフィックは S3 VPC エンドポイントを使用して送信されます

Databricks では、アクセスが一時的に使用される場合に備えて、S3 グローバル URL へのアクセスを許可する出口装置を構成することをお勧めします。たとえば、最初のワークスペース作成後、ノートブック、またはクラスタ Spark 構成とクラスターポリシのセットアップ前に、Databricks はグローバル URL を使用しなくてはいけません。

Kinesis リージョナル VPC エンドポイント概要

コントロールプレーンのロギングおよび使用状況データエンドポイントのKinesisへのデータプレーンアクセスの場合:

  • us-west-2、us-east-1 と us-east-2、リージョンへのトラフィックは Kinesis VPC エンドポイントを使用
  • us-west-1 のリージョンの場合、関連するエンドポイントがクロスリージョンのため、Kinesis VPC エンドポイントはバイパスされる

VPCリージョン内の顧客データストリームのKinesisへのデータプレーンアクセスの場合:

  • トラフィックは、Kinesis VPCエンドポイントを使用

リージョナルエンドポイントのセットアップ

ここでは、ノートブックやクラスタレベルでのアウトバウンドアクセスの制限や、Spark の設定を追加するためのオプションの手順と、リージョナルエンドポイントの設定方法を説明します。

S3 VPC ゲートウェイエンドポイントのセットアップ

AWS コンソール、または AWS CLI ツールで利用できます。

■CLI コマンド

[crayon-5fbc14bbb0b03598349452/]

STS VPC ゲートウェイエンドポイントのセットアップ

AWS コンソール、または AWS CLI ツールで利用できます。

■CLI コマンド

[crayon-5fbc14bbb0b07897056590/]

■AWS コンソール
1. AWS コンソール画面より、 VPC サービスの画面に移動
2. 左のナビゲーションより「エンドポイント」を選択し、「エンドポイントの作成」をクリック
3. 「サービス名」フィールドで sts を検索し、ユーザの利用しているリージョンのを選択
4. 「VPCフィールド」で Databricks デプロイメントと関連づいている VPC を選択
5. 同じフィールドで、ワークスペースのサブネットを選択(本番環境への導入時は、エンドポイントネットワークインターフェイス用のサブネットはワークスペースのサブネットとは異なる必要がある。)
6. 「DNS 名を有効化」にチェック
7. VPC で DNS ホスト名と DNS 解決が有効になっていることを確認
8. セキュリティグループ画面で、Datarbricks ワークスペースに関連づいたセキュリティグループを選択
9. ポリシー画面にて「フルアクセス」を選択
10. STS インターフェイスエンドポイントが AWS VPC コンソールのエンドポイントセクションに表示されていることを確認

おわりに

Customer Managed VPC の リージョナルエンドポイントに関するまとめは以上です。
詳細については、元記事をご参照ください。