+ CheatSheet - AWS Security Specialty#
Abstraction#
分野 |
概要 |
---|---|
IAM |
AWS認証認可サービス、IDおよびアクセス管理の中心的な役割を果たす。 |
KMS |
暗号化キーを管理するサービス。 |
S3 |
オンラインストレージサービス。 |
VPC |
仮想的なプライベートネットワークを構築するサービス。 |
CloudWatch |
AWSリソースとその上で実行するアプリをモニタリングするサービス。 |
1. IAM#
IAM は AWS リソースに対する認証認可の機能を司る。IAMを利用することで、AWSのユーザとグループを作成および管理し、アクセス権を使用して AWS リソースへのアクセスを許可及び拒否できる。
IAMの機能#
IAM ユーザ
IAM ユーザのアクセスキーについて
ID/Password
AccessKey/SecretAccessKey
AccessKey: AWS 外のリソースからコマンドインターフェース(CLI)やサードパーティ製のツールを通じて AWS を操作する際に利用する。
※キーペアが設定されている IAM ユーザに対して、IP アドレス等の利用制限をする
※流出の被害を最小化するために、最小権限のみ付与する
※キーペアをハードコーディングしないで済む方式、IAM ロールや Cognito で代替する
※キーペアを利用する場合は、プラグラムに埋め込むのではなく環境変数に設定する
※AWS 提供の機密情報を誤って commit することを防ぐ git-secrets を導入する
Ref:
IAM ユーザやアクセスキーの利用履歴を確認する
IAM ユーザや IAM ロールのダッシュボードから、それぞれ最後にいつ使われたのか確認することができる。認証情報レポートからすべて IAM ユーザの利用状況を CSV 形式でダウンロードできる。
Config Rules を利用することで自動でチェックすることも可能。
IAM グループ
同一の役割を持つ IAM ユーザをグループ化する機能。IAM ユーザ同様にアクセス権限を付与するができる。
権限の付与方法について、管理ポリシーとインラインポリシーがある。
インラインポリシーは、IAM ユーザ・IAM グループ間で共用することができない。基本的には管理ポリシーを利用しましょう。
IAM ポリシー
JSON 形式で記述する。以下3つのルールがある。
Action
Resource
Effect
AWS 管理ポリシー(AWS Managed Policies)とカスタマ管理ポリシー(Customer Managed Policies)、インラインポリシーについて
インラインポリシーは、対象ごとに作成・付与するポリシーで、複数のユーザ・グループに付与することはできない。
管理ポリシーは、1つのポリシーを複数のユーザやグループに適用することができる。
10種類の職務機能の AWS 管理ポリシー
管理者
Billing
データベース管理者
データサイエンティスト
開発者パワーユーザ
ネットワーク管理者
セキュリティ監査人
サポートユーザ
システム管理者
閲覧専用ユーザ
IAM ロール
ロールによる権限の委任の仕組み
IAM ロールは、AWS のサービスやアプリに対して、一時的な AWS リソースの操作権限を与える仕組み。この操作権限の付与は、AWS Security Token Service(AWS STS)を利用し、一時的認証情報(Temporary security credential)を発行することにより実現している。
信頼関係の設定
アクセス権限(Policy)以外に信頼関係(Principal)がある。信頼関係は、誰がそのロールを利用できるのかを指定するもの。基本的に、下記のPrincipalを編集して利用する。AWS のサービスであったり AD でログインしたユーザであったりと様々な指定方法がある。
{ "Version": "2012-10-17", "Statement":[ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
IAM の設計運用原則#
ルートユーザの取り扱いについて
ルートユーザのみで実行可能な操作(Admin 権限を付与した IAM ユーザでも、下記の操作はできない。)
AWS アカウント全体の設定変更(ルートアカウントのメールアドレス/パスワード変更など)
AWS サポートのプラン変更
請求に関する設定
AWS アカウントの停止
AWS アカウントを作ったら、まず初めに Admin 権限をもつ IAM ユーザを払い出し、それ以降の作業はこの IAM ユーザで行うようにする。ルートユーザは二要素認証をかけ、必要な時以外はルートユーザを使わないという運用を徹底する。
IAM を利用した権限管理の原則#
AWS アカウントのルートユーザアクセスキーをロックする
個々の IAM ユーザの作成
IAM ユーザへのアクセス許可を割り当てるためにグループを使用する
最小権限を付与する
AWS 管理ポリシーを使用したアクセス許可の使用開始
インラインポリシーではなくカスタマ管理ポリシーを使用する
アクセスレベルを使用して、IAM 権限を確認する
ユーザの強力なパスワードポリシーを設定
Amazon EC2 インスタンスで実行するアプリに対し、ロールを使用する
ロールを使用したアクセス許可の委任
アクセスキーを共有しない
認証情報を定期的にローテーションする
不要な認証情報を削除する
追加セキュリティに対するポリシー条件を使用する
AWS アカウントのアクティビティの監視
パーミッションバウンダリー(Permissions Boundary): IAM の移譲権限を制限する#
IAM アクセスアナライザー: 信頼関係の設定の妥当性を確認しやすくするツール#
AWS DirectoryService#
AWS 内でマネージド型の Microsoft Active Directory を利用するためのサービス。
AWS における ActiveDirectory 関係のサービス一覧
分野
概要
AWS Managed Microsoft AD
AWS 上にマネージド型の Microsoft AD を構築するサービス
Simple AD
Linux-Samba Active Directory で構築されたマネージド型ディレクトリサービス
AD Connector
既存の AD に対してリダイレクトする AD のプロキシサービス
オンプレミスとの接続パターン
AD Connector を使って既存の AD に対して認証プロキシとして動作させる
Managed Microsoft AD を構築し既存の AD と双方向の推移的信頼関係を構築する
一般的に、VPC を利用して VPN や専用線接続をする。使い分けの違いは、想定のアクセス規模であったり耐障害性である。