Skip to content

+ 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 でログインしたユーザであったりと様々な指定方法がある。

    json { "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 や専用線接続をする。使い分けの違いは、想定のアクセス規模であったり耐障害性である。

2. KMS(TODO)

3. S3(TODO)

4. VPC(TODO)

5. CloudWatch(TODO)