セキュリティとアイデンティティ
セキュリティとアイデンティティ
AWSのアカウントの種類
AWSにはAWSアカウントとIAMユーザーと呼ばれる2種類のアカウントがある。
- AWSアカウント
- AWSのすべてのサービスをネットワーク上のどこからでも利用可能
- ルートユーザーとも言われる
- IAMアカウント
- AWSを利用する各利用者向けに作成されるアカウント
- 必要に応じてAWSアカウントユーザーにより作成される
- AWSの各利用者がWebコンソールログインして操作するとき、APIを利用してAWSを操作するときなどに利用
- IAMユーザーには最小限の権限を付与することでセキュリティの安全性を高めることができる
IAMの機能
- AWSサービスやAWSリソースに対する操作権限をIAMポリシーとして定義
- IAMポリシーをIAMユーザーやIAMグループにアタッチする
- IAMユーザー、IAMグループに属するIAMユーザーがマネジメントコンソールにログインすると、付与された権限の操作を行うことができる
IAMポリシー
Acion(サービス), Resource(機能や範囲), Effect(許可/拒否)という3つの大きなルールに基づいて、AWSの各サービスを利用する上での様々な権限を設定
- インラインポリシー
- 対象ごとに個別に適用する
- 管理ポリシー
- 複数のユーザー・グループにまとめて適用する
- AWS管理ポリシー
- AWSによって用意されたもの
- カスタマー管理ポリシー
- ユーザー自身が管理するもの
IAMユーザーとIAMグループ
ユーザーとは、AWSを利用するために各利用者に1つずつ与えられている認証情報のこと。
- ユーザーIDとパスワード
- Webコンソールにログインする際に利用
- Multi-Factor Authenticationを推奨
- アクセスキーとシークレットアクセスキー
- CLIやAPIからAWSのリソースにアクセスする場合に使用
IAMロール
IAMロールは、一時的にAWSリソースへのアクセス権限を付与するときに利用
- AWSリソースへの権限付与
- EC2インスタンス上で稼働するアプリケーションに一時的にAWSのリソースへアクセスする権限を与えたい
- クロスアカウントアクセス
- 複数のAWSアカウント間のリソースを1つのIAMユーザーで操作したい
- IDフェデレーション
- 社内のAD(Active Directory)サーバーに登録されているアカウントを使用して、AWSリソースにアクセスしたい
- Web IDフェデレーション
- FacebookやGoogleのアカウントを使用してAWSリソースにアクセスしたい
KMSとCloudHSM
KMS(=AWS Key Management Service)は、AWSが管理するマネージドサービスで、多くの場合、CloudHSMではなくこちらを用いる
CloudHSM(=AWS CloudHSM)は、VPC内で専有のハードウェアを利用して鍵を管理するサービスで、相当に大規模なシステムに用いる
KMSとCloudHSM
CloudHSM | KMS | |
---|---|---|
専有性 | VPC内の専有ハードウェアデバイス | AWSが管理するマルチテナント |
可用性 | ユーザー側が管理 | AWS側が高可用性・耐久性を設計 |
信頼の基点 | ユーザー側が管理 | AWS側が管理 |
暗号化機能 | 共通鍵及び公開鍵 | 共通鍵 |
コスト | ほぼ固定 | 従量課金 |
KMSの機能
KMSでは、データキーでデータを暗号化し、データキーをマスターキーで暗号化する。(エンベロープ暗号化)
- Encrypt: 暗号化API
- Decrypt: 復号化のAPI
- GenerateDatakey: ユーザーがデータの暗号化に利用するためのカスタマーデータキーを作成する
マスターキーとデータキー
- Customer Master Key
- データキーを暗号化するための鍵
- Customer Data Key
- データを暗号化するための鍵
AWS Certificate Manager
証明書の役割と種類
- 経路間通信の安全性の確保
- 通信している相手が誰かの証明
- 自己証明書: 自分で認証局をたてて証明書を発行(第三者による保証無し)
- ドメイン証明(DV): ドメインの所有のみを証明。組織情報の確認はされない
- 組織認証(OV): 組織情報の審査を経てから認証する
- 拡張認証(EV): OVより厳格な審査で認証する。アドレスバーに組織名が表示される
ACM
AWS Certificate Manager(ACM)は、AWS自身が認証局になってDV証明書を発行するサービス。
ACMは、AWS自身が認証局となって、RSA鍵とサーバー証明書の作成・管理を行うサービス。