Amazon Macieを使ったEU一般データ保護規則(GDPR)対策

ベルリンののび太です。 ベルリンは気温が0度前後の日が続き、「日の出8時」で「日没16時」という暗く寒い日が続いています。逆にいうと、家に籠ってAWSをいじって遊ぶのには最適な季節ということですね。

ということで、今回は今年8月にリリースされた人工知能 (AI) 搭載のセキュリテイサービスであるAmazon Macieを使って、いかに「欧州(EU) 一般データ保護規則 (General Data Protection Regulation) 」(以降、GDPR) に向けて対策していくかについて触れたいと思います。

EU一般データ保護規則(GDPR)とは

 

「EU一般データ保護規則 」と聞くと、日本の皆さまには縁がないことのように聞こえますが、実は企業の所在地には関わらず、EU圏の住民のデータを取り扱う企業は全て対象になります。つまり、日本の企業であってもEU圏の住民 (※国民ではない) の個人情報を扱う場合は、この規則に従う義務が生じます。例えば、何らかのサービスを提供しており、EU圏に在住の方(日本人を含む)がそのサービスを利用したとします。その時点でGDPRに則る義務が生じます。そして、GDPRは2018/05/25から施行され、この規則を破った場合、最大全世界売上の4%相当の賞罰が課せらせます。売り上げの4%というと倒産に追い込まれるレベルですね。GDPRに関する情報はこちらの記事にまとまっております。

そして、このGDPRへの対策の際に、Amazon Macieちゃんが役に立つのです。Amazon Macieは個人情報を判別し、ダッシュボードやアラート機能を用いることで、データの暗号化や仮名化を容易にし、GDPRの規則に準拠できるように手助けしてくれます。今回はGDPR対策というシナリオに則って、Amazon Macieを使ってみようと思います。具体的には、MacieがS3バケット内で個人情報を検出し、アラートを発し、CloudWatchを用い、Macieのアラートを自動的にEメール通知するフローを作ってみます。

Amazon Macie の概要

Amazon Macieに関してはせーのさんの書かれたこちらの記事に非常によくまとめられておりますので、私の記事でも頻繁に拝借引用させて頂きます。

Amazon Macieは機械学習を使ってAWSに保存されている機密データを自動的に発見、分類、保護することにより、データ損失を防止するためのAI機能のセキュリティサービスです。Macieの監視対象は「特定のバケット内にあるS3オブジェクト」と「特定のアカウントのCloudTrail API」です。特定のS3バケットの中に入っているデータを自然言語処理(NLP)を使用して検出、分類し、そのデータに対してどこから、誰が、どれくらいアクセスしたのかを監視します。監視にはCloudTrailを使用し、回帰的にアクセスパターンをDeep Learningによって分析し、不正なアクセスがあった場合は警告を発生させるよう設定できます。その警告はCloudwatch Eventsで拾えるのでLambdaにつなげば一次対応まで自動的に行うことができます。

現在Maiceが監視できるデータソースはS3バケットとCloudTrailのみとなります。将来的にはこれに加えてEC2, DynamoDB, RDS, EFS, Glueが監視できるようになるそうです。

Amazon Macie のセットアップ

ではAmazon Macieをセットアップしていきます。

Get Startedですね。Macieは現在N. VirginiaとOregonでのみ使用可能なので、リージョンがどちらかに移ったことを横目に見ます。

リージョン、必要な権限、パーミッションが設定されることへの許可チェックが入っています。AWSにてこれらの設定を有効化するCloudFormationテンプレートが提供されているので、そちらを使いましょう。CloudFormationテンプレートを使った設定の詳細手順はこちらの記事をご参考下さい。

MacieのTop画面になりました。左欄の一番下のIntegrationsを選択します。

AccountsからServicesタブに切り替えます。

ドロップダウンメニューから対象のAWSアカウントIDを選びます。

Amazon S3のDetailsをクリック。

対象リージョン(この場合N. Virginia)のバケットが全て表示されますので、Macieで監視保護したいバケットを選択。今回はあらかじめ用意しておいたテスト用バケットにチェックボックスを入れます。出来たらReview and Saveで次のページに進みます。

選択したバケットを確認し、2つの同意事項にチェックし、Saveです。

最後にOverviewの画面で確認して、設定終了です。

 

Amazon Macie で分析してみる

さて、Macieのセットアップが終わったということで、分析結果がどうなったかみてみる前に、Macieがファイルをどのように分類するかを見てみましょう。

Macieによるファイル分類の切り口

Macieは「コンテンツタイプ」「拡張子」「テーマ」「正規表現」「個人識別情報(PII)」といった切り口に加えてSVM(Support Vector Machine)によるnグラム分析が行われ、独自にファイルを分類していきます。今回はその中でも「個人識別情報(PII)」を含むファイルをS3バケットにアップロードしてみて、Macieが感知してくれるかと試します。

「個人識別情報(PII)」でMacieが認識できるのは

  • 氏名
  • 郵送先住所
  • メールアドレス
  • クレジットカード番号
  • IPアドレス(IPv4およびIPv6)
  • 運転免許証ID(米国)
  • 国識別番号(米国)
  • 生年月日

になります。これらをMacieはリスクレベル1-10段階 (10が最も高リスク) で high / middle / low のリスクに振り分けます。

  • high
    • 1つ以上のフルネームとクレジットカード番号
    • 50以上の名前またはメールアドレス、他の任意の組み合わせ
  • middle
    • 5つ以上の名前またはメールアドレス、他の任意の組み合わせ
  • low
    • 1つ以上5つ未満の名前またはメールアドレス、他の任意の組み合わせ
    • 名前やメールアドレス以外の情報が入っている

ということで、こういった情報が含まれるファイルをS3にアップロードし、Macieがどう分析かつ振り分けるのかみてみたいと思います。

分析結果

左欄のDashboardを選ぶと、全体の分析のインフォグラフィックがみれます。

左欄Researchを選ぶと、項目別に分析されたファイルの情報がグラフとして表示されます。

特定のファイル (この場合はダミーのService Agreementの文書) の分析結果詳細をみると、このようにObjectにどういった個人情報(PII)がどれだけ検出され、文書の種類 (artifacts) も特定できています。

また左欄のSettingsにいくと、それぞれ分類項目をカスタマイズすることが可能です (Content type等の文字ではなくアイコンをクリックしないと進みません)。

CloudWatch と連携してみる

ではこのMacieの分析結果のアラートをCloudWatchを使って自動化し、Emailとして受信するように連携してみます。

CloudWatchを開き、左欄でEventsを選び、Create rulesを押します。

Event Patternが選ばれていることを確認し、Service Nameのドロップダウンメニューから、Macieを選びます。Event TypeはMacie Alertを選択。

次に、画面右半分に移り、Targetsを設定します。今回はSimple Notification Service (SNS) を使い、Email通知するように設定したSNS topicsを選びます(ここではOffice_365という名前です)。このTargetsにはSNS topicsだけではなくLambda等を指定することもできるため、Macieからの自動化の選択肢の幅はかなり広いことが伺えます。

Targetsを設定したら、Configure detailsで次のページへ。

ここではNameとDescriptionを入力し、Create ruleを押します。

これでCloudWatch上で、MacieからSNS topicsを使ったEmailによる通知の自動化の流れができました。かなり簡単にできてしますのがお分かり頂けたかと思います。

まとめ

GDPR対策のためのAmazon Macieとみてきましたが、大量のファイルから個人情報等を分析し、リスク別に振り分けるという観点だけでも、GDPRへの対策にかなり貢献してくれるのではないかと感じられました。Amazon Macieのリリースされた際のAWSの公式ブログ記事にも「Amazon Macieは個人特定情報(PII)を認識し、ダッシュボードとアラート機能を提供することで、顧客にデータの暗号化や仮名化によるGDPRへの準拠を可能にします。」と述べられているように、Amazon側としてもGDPRを念頭に置いてのリリースだったのやもしれません。

今回、Macieとの連携に関してはSNSによるEmailアラートという非常にシンプルなものでしたが、Lambdaクエリ等を利用した連携により、自動化の可能性が格段に上がるのがご想像頂けるかと思います。弊社では今後ともGDPRやMacieに関する情報を発信していきますので、どうぞご参考になさってください。

参考URL

GDPRについて

【レポート】AWS Transformation Day 2017 : AWSクラウドにおけるデータ保護:GDPR対応とC5の概要 #AWSTransformationDay

https://www.eugdpr.org/

Amazon Macieについて

【新サービス】機械学習を使って不正なアクセスパターンを検出、対応するAmazon MacieがLaunch。

Amazon Macieで検知したAlertをCloudWatch Events経由でメール通知する

https://aws.amazon.com/jp/blogs/news/launch-amazon-macie-securing-your-s3-buckets/ http://docs.aws.amazon.com/macie/latest/userguide/what-is-macie.html https://aws.amazon.com/jp/macie/