Amazon Macie で S3 バケット内の機密データを検出する
記事の「実践」を 1 項目ずつ進めるためのページです。AWS マネジメントコンソールで操作したら、右の一覧にチェックを入れてください。チェックはこのブラウザに保存されます。
前提条件
- リージョン:
ap-northeast-1(東京) - S3 バケットを作成できる IAM 権限があること
- Amazon Macie を操作できる IAM 権限があること
作成するリソース一覧
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| S3 バケット | macie-handson-data-<アカウントID> | 機密データ検出の対象バケット |
| Macie 検出ジョブ | handson-macie-job | 機密データ検出ジョブ |
> S3 バケット名はグローバルで一意にする必要があるため、<アカウントID> の部分をご自身の AWS アカウント ID に置き換えてください。
ステップ1: サンプルデータの準備と S3 へのアップロード
まず、機密データを含むサンプルファイルを作成し、S3 にアップロードします。
ローカルマシンで以下の内容のファイルを sample_data.csv として保存します。
employee_id,name,email,phone,credit_card,ssn
001,Taro Yamada,taro.yamada@example.com,090-1234-5678,4111-1111-1111-1111,123-45-6789
002,Hanako Suzuki,hanako.suzuki@example.com,080-2345-6789,5500-0000-0000-0004,987-65-4321
003,Jiro Tanaka,jiro.tanaka@example.com,070-3456-7890,3400-000000-00009,456-78-9012
このファイルには、メールアドレス、電話番号、クレジットカード番号、社会保障番号(SSN)といった機密データが含まれています。
上部の検索バーに S3 と入力し、表示された「S3」を選択します。
「バケットを作成」をクリックし、以下を入力します。
- バケット名:
macie-handson-data-<アカウントID> - リージョン:
アジアパシフィック(東京)ap-northeast-1 - その他の項目はデフォルトのままにします
「バケットを作成」をクリックします。
作成したバケットを開き、「アップロード」をクリックして sample_data.csv をアップロードします。
ステップ2: Amazon Macie を有効化する
上部の検索バーに Macie と入力し、表示された「Macie」を選択します。
Macie を初めて使用する場合、「Macie を有効にする」画面が表示されます。「Macie を有効化」をクリックします。
有効化が完了すると、Macie の概要画面が表示されます。Macie が S3 バケットのメタデータの収集を始めますが、バケットが一覧に出るまで 5〜10 分ほどかかることがあります。
ステップ3: S3 バケットのセキュリティ状態を確認する
左側ナビゲーションの「S3 バケット」を選択します。
Macie がアカウント内の S3 バケットを評価した結果が一覧表示されます。一覧には機密性スコア、分類可能なオブジェクトの数とサイズ、ジョブによるモニタリングの有無などが並びます。
上部の検索欄で「バケット名」を選び、macie-handson-data-<アカウントID> で絞り込みます。バケットの行をクリックすると、右側のパネルで以下を確認できます。
- 機密性スコア
- 共有アクセスの状態
- デフォルトの暗号化の設定
バケットのメタデータは毎日更新されるため、アップロードした直後は「分類可能なオブジェクト」が 0 のままのことがあります。この場合でも、次のジョブはオブジェクトを分析できます。
ステップ4: 機密データ検出ジョブを作成する
左側ナビゲーションの「ジョブ」を選択します。
「ジョブを作成」をクリックします。「ジョブを作成してよろしいですか?」という確認が表示されます。機密データ検出ジョブは自動機密データ検出の無料トライアルの対象外である旨が書かれていますが、毎月 1 GB までの分析は無料のため、今回のサンプルファイル(数百バイト)では料金は発生しません。「はい」をクリックします。
作成ウィザードは 8 つのステップで進みます。
ステップ1: S3 バケットを選択
- 「特定のバケットを選択」が選ばれていることを確認します
- 検索欄で
macie-handson-data-<アカウントID>に絞り込み、バケットにチェックを入れます
「次へ」をクリックします。
ステップ2: S3 バケットを確認
選択したバケットと推定コストが表示されます。「次へ」をクリックします。
ステップ3: 範囲を絞り込む
- スケジュール: 「ワンタイムジョブ」を選択します
- サンプリング深度:
100のままにします(バケット内の全オブジェクトを対象) - その他の項目はデフォルトのままにします
「次へ」をクリックします。
ステップ4: マネージドデータ識別子
- 「推奨」を選択します(デフォルト)
「次へ」をクリックします。
ステップ5: カスタムデータ識別子
今回はカスタムデータ識別子を使用しないため、そのまま「次へ」をクリックします。
ステップ6: 許可リスト
許可リストも使用しないため、そのまま「次へ」をクリックします。
ステップ7: 一般設定
- ジョブ名:
handson-macie-job - ジョブの説明 - オプション:
ハンズオン用の機密データ検出ジョブ
「次へ」をクリックします。
ステップ8: 確認して作成
設定内容を確認し、「送信」をクリックします。確認画面とジョブ一覧には、機密データ検出結果を保存するリポジトリの設定を促す案内が表示されますが、今回は設定しません。
ジョブが作成され、ステータスが「アクティブ (実行中)」になります。
ステップ5: 検出結果を確認する
ジョブの完了には十数分かかることがあります。ジョブ一覧でステータスが「完了」になるのを待ちます。
左側ナビゲーションの「検出結果」を選択します。Macie が検出した機密データの検出結果が一覧表示されます。今回のサンプルでは、検出結果が 1 件作成されます。検出結果をクリックすると、右側に詳細が表示されます。
詳細では以下の情報が確認できます。
- 検出結果のタイプ:
SensitiveData:S3Object/Multiple(複数のカテゴリの機密データが見つかったことを表す) - 重要度:
High - 機密データ: クレジットカード番号(
Credit card number)が 2 件、米国の社会保障番号(Usa social security number)が 2 件 - 影響を受けるリソース: 対象の S3 バケットとオブジェクト、パブリックアクセスや暗号化の状態
サンプルにはメールアドレス・電話番号・氏名も入っていますが、検出されていません。メールアドレスを検出するマネージドデータ識別子は無く、氏名と電話番号の識別子はジョブの既定の「推奨」セットに含まれていないためです(電話番号は日本の番号にも対応していません)。また、カード番号と SSN も 3 件ずつ入れていますが、検出されたのは 2 件ずつでした。
ステップ6: ジョブの実行結果の統計を確認する
左側ナビゲーションの「ジョブ」を選択し、handson-macie-job をクリックします。
右側のパネルで、ステータスが「完了」になっていることと、「統計」の「処理するオブジェクトの概数」と「実行回数」を確認します。処理するオブジェクトの概数は、ジョブ作成時点のバケットのメタデータから見積もった値のため、アップロード直後のバケットでは 0 と表示されることがあります。実際に分析した結果は「結果を表示」メニューから検出結果に移って確認します。