Slide 1

Slide 1 text

AWS最小権限での運用に向け た技術調査 2022/05/10 高木 建太朗

Slide 2

Slide 2 text

背景 • AWSのプリンシパルを最小権限で運用したい。 • 設計時にポリシーを最適化することは困難。 • 特に開発者に割り当てるポリシーの最適化が困難。 • 試用期間として運用しながら、開発者のAPIコールをベースに権限を作成したい。 目的 • 試用期間を設けて開発者に割り当てるポリシーの原型を得る。

Slide 3

Slide 3 text

TRDL 方法は大きく分けて以下の2つが考えられる 1. IAM access Analyzerのポリシー生成 リソースに関しての条件を指定しなくていいのであればIAM access Analyzerの ポリシー生成を利用する 2. Cloud Trail Lake の利用 リソースに関しての条件指定をしたいのであれば Cloud Trail Lake のクエリを実行して開発者の行動履歴を抽出する

Slide 4

Slide 4 text

方法1.IAM access Analyzerのポリシー生成 IAM が提供する機能でユーザの過去のAPIコールからIAMポリシーを生成できる。 • 無料で利用可能 • 事前にCloudTrailの証跡を作成しておく必要がある。 #データイベント(S3のGETなど)は対象外!! • 同時に実行可能な対象は1つまで • 最大過去90日の履歴を対象とすることができる • 実行に最大6時間を要する • 生成したポリシーは7日間確認可能 Ref) https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access-analyzer-policy-generation.html

Slide 5

Slide 5 text

方法1.IAM access Analyzerのポリシー生成 IAMで所望のユーザやロールを選択し、ポリシーの作成を押す

Slide 6

Slide 6 text

方法1.IAM access Analyzerのポリシー生成 必要項目を選択してポリシーを生成を押す

Slide 7

Slide 7 text

方法1.IAM access Analyzerのポリシー生成 ポリシーの生成がスタートして進行中のステータスになる。この状態に できるのは同時に1つのプリンシパルやロールのみ。

Slide 8

Slide 8 text

方法1.IAM access Analyzerのポリシー生成 完了すると生成されたポリシーを表示から確認可能になる。

Slide 9

Slide 9 text

方法1.IAM access Analyzerのポリシー生成 左の様に使用されたアクションの 一覧が手に入り編集も可能となる。

Slide 10

Slide 10 text

方法1.IAM access Analyzerのポリシー生成 次画面で詳細なポリシーの編集が可能。

Slide 11

Slide 11 text

方法1.IAM access Analyzerのポリシー生成 名前を付けて保存すればユーザ管理ポリシーとして保存できる。 (ちなみに、同時にアタッチもされる)

Slide 12

Slide 12 text

方法2. Cloud Trail Lake の利用 Cloud Trail Lake と呼ばれる機能がCloud Trail で提供されている。内部的にはAthena と連携しており Glue などを利用せずともCloud Trail の証跡に相当するものにクエリ がかけられる。 • 重量課金制(ログ取り込みに2.5$/5TB、スキャンに0.005USD/1GB) • クエリをうまく使えばS3のデータイベントなども扱える • 証跡とは別機能。イベントデータストアになりイベントはクエリできない。 • 最大過去7年間の履歴を対象とすることができる • 実行速度はAthenaの性能となる(たぶん) • クエリの結果は7日間確認可能

Slide 13

Slide 13 text

方法2. Cloud Trail Lake の利用 Cloud Trailの左ペインからレイクを選択してイベントデータストアを選択し作成

Slide 14

Slide 14 text

方法2. Cloud Trail Lake の利用 諸般入力して次へ

Slide 15

Slide 15 text

方法2. Cloud Trail Lake の利用 詳細に解析したければデータイ ベントにチェックをいれて、 データイベントの詳細を設定す る。例はS3のデータイベント を対象としている。

Slide 16

Slide 16 text

方法2. Cloud Trail Lake の利用 イベントデータストができる。

Slide 17

Slide 17 text

方法2. Cloud Trail Lake の利用 イベントに対するクエリ実行の例。

Slide 18

Slide 18 text

方法2. Cloud Trail Lake の利用 ・例えば監査用、ポリシー作成用に月初にユーザの直近1年APIコールを確認したい EventBridge → Lambda with StartQuery API + GetQueryResults API →メール転送など #Athena のAPI とは異なり直接S3に出力する機能をもったAPIはない ・クエリをうまく設定すれば、現在のCheckサーバをなくすことができる。具体的には既存スクリプトをク エリ化すればよい。

Slide 19

Slide 19 text

今後 CloudTrailLake の定期実行と通知方法を調べる。 ユーザやロールの権限を作成するためにいい感じのクエリを作成する。