アカウント管理、ログイン関連 | AWS SAA 受験に向けたメモ③

## はじめに
SAA試験勉強のうちアカウント管理やログイン関連について、個人的に何度も忘れてしまうものや分かりにくいものをまとめていきます！
試験範囲を網羅しているわけでは全くありませんのでご注意を！
その他の範囲まとめはこちら↓

https://qiita.com/hoshi_/items/b3c101a3e92a73728789

## Organizations
### SCP
SCPを有効化すると、デフォルトではOUに対してFullAWSAccessが付与される。
SCPでは、各サービスへのアクセス権限の設定の他、
EC2インスタンス作成時のタグ付けを強制したり、タグを削除することを防ぐポリシーも適用できる。

### タグポリシー
タグ付けの標準化ができる。
+ タグキーと値の制限：タグのキー名と値の形式を制限し、誤ったタグ付けを防ぐ。
+ 必須タグの指定：すべてのリソースに必ず付与するべきタグを指定できる。
+ タグの組み合わせの制限：特定のタグキーとタグ値の組み合わせを許可または禁止できる。

:::note
SCPでタグに関して設定できることは最小限で「タグ付け強制の有無、タグ削除禁止」など。
対してタグポリシーでは、タグ付けに関して、より詳細にタグキーや値の設定ができる。
:::

### 一括請求
EC2やS3などの一部サービスは、ユーザーがより多く利用すればするほど低価格となるため、Organizationsの一括請求で利用量を統合することでコストを削減できる可能性がある。

## Control Tower
Organizations環境の管理とガバナンスを簡単にするためのマネージドサービス。
新しいアカウントが自動的にセキュリティとコンプライアンスを守るように設定され、例えばAPIコールやログインの監査も実施できる。

## STS
Security Token Service (STS)は限定的で一時的なセキュリティ認証情報を提供するサービス。
ウェブIDフェデレーションを使用すると、外部のIDプロバイダー（例えばGoogleなど）を使用してサインインできる。
そこで発行された認証トークンを使って、S3などのAWSリソースを使用するためのアクセス許可を持つIAMロールにトークンをマッピングして、一時的なセキュリティ認証情報に変換できる。

## IAM
### IAMポリシー
IAMポリシーには大きく分けて以下3つの種類がある
+ 管理ポリシー
    + AWS管理ポリシー：管理者権限ポリシーなど、AWSがあらかじめ定義してくれているポリシー
    + カスタマー管理ポリシー：AWSアカウントで作成・管理するポリシー。複数のIAMエンティティにアタッチできる
+ インラインポリシー：1つのエンティティ（ユーザー／グループ／ロール）に埋め込まれる固有ポリシー

### IAM Roles Anywhere
AWSの外部で実行されるワークロード（オンプレサーバ、コンテナ、他のクラウド環境など）に対して一時的なAWSの認証情報を安全に提供するサービス。
オンプレとの連携が必要なハイブリッドクラウド環境や、コンテナ環境からAWSリソースにアクセスな必要な場合などに利用される。

## Identity Center
組織内のユーザーIDを一元的に管理し、AWSアカウントやAWSアプリケーションへのSSO（シングルサインオン）を提供する。
ユーザーディレクトリ（Directory Service、Oktaなど）と連携し、ユーザー認証と認可を行う。
従業員が社内システムと同じ認証情報でAWSにアクセスできるようにしたい場合などに使用する。

### STSとIdentity Centerの違い
| - | STS | Identity Center |
|:-:|:-:|:-:|
| 主な役割  |  一時的な認証情報の発行 | ユーザーの一元管理とSSO  |
|  認証方法 |  IAMユーザー、外部IdPなど |  ユーザーディレクトリ |
|  アクセス対象 | AWSリソース  |  AWSアカウント、AWSアプリケーション |
|  目的 | AWSリソースへの一時的なアクセスを許可  | 複数のAWSアカウントやアプリケーションへのアクセスを簡素化する  |

:::note alert
Identity Centerは**SAMLベースの認証を行う**ため、
SAMLと互換性がないサービスで認証を行う場合には**STS**と使う必要がある。
:::

## Identity and Access Management (IAM) Access Analyzer
IAMユーザーのアクセス権限を分析し、リソースやアカウントに対する不要な権限があるかどうかを確認できる。

## Active Directory連携
### Active Directoryの資格情報を使用して、オンプレとAWSの両方にアクセスできるシングルサインオンを実現する方法
IAM Identity Centerを利用して、SAMLフェデレーションを設定してオンプレミス環境のActive Directoryと連携することで、Active Directoryの資格情報を利用してAWSとオンプレの両方に一元的にアクセスできるようになる。

### Directory Service
AWS上でMicrosoft Active Directoryの機能を利用できるマネージドサービス。
大きく分けて3つのタイプがある。
| タイプ | 説明 | 主な用途 |
|:-:|:-:|:-:|
| Simple AD  |  AWS上に新たに構築される小規模なActive Directory環境。基本的な認証機能を提供し、AWSのサービスと連携できる。 |  小規模な環境での認証、開発環境 |
| AD Connector  |  既存のオンプレActive DirectoryとAWSを連携させるために使う。既存のADユーザーやグループ情報をAWSに同期できる |  既存のAD環境とAWSを連携させたい場合 |
| AWS Managed Microsoft AD  |  AWS上で完全に管理される大規模なActive Directory環境。オンプレのADと同様の機能を提供し、高度なセキュリティ機能も備えている。 | 大規模な環境での認証、複雑なドメイン構造が必要な場合  |

:::note
AWS Directory Serviceのユーザーまたはグループに、IAMロールを割り当てることでアクセス制御を行う
:::

### 混同しやすいもの比較
| - | Organizations | IAM Identity Center | IAM個別管理 |
|:-:|:-:|:-:|:-:|
| 主な機能  | AWSアカウントの組織化、一括請求、SCP  | シングルサインオン、アクセス権限の一元管理、MFA  |  各アカウント内のユーザー、グループ、ロールの管理 |
| 管理単位  |  AWSアカウントのグループ |  組織全体 |  個別のAWSアカウント |
|  メリット |  アカウント管理の効率化、コスト管理の簡素化、セキュリティポリシーの一元管理 | アクセス管理の効率化、セキュリティ強化、UX向上  |  柔軟な権限設定、細粒度のアクセス制御 |
| デメリット  | 組織構造の変更に時間がかかる  |  導入初期コスト、複雑な設定 |  管理コスト増大 |
| ユースケース  | 複数のAWSアカウントをグループ化し、一括管理したい場合。コストを最適化したい場合。セキュリティポリシーを統一したい場合  |  複数のAWSアカウントやSaaSアプリケーションへのアクセスを統合したい場合。セキュリティレベルを高めたい場合。大規模組織で一元的な管理を行いたい場合 | 小規模プロジェクトや特定のサービスへのアクセス管理をしたい場合  |

## Cognito
### Cognito アダプティブ認証
新しいデバイスや位置などからログインされると、動的にセキュリティレベルを調整する仕組み。
> ex. いつもと違うスマホからログインされたらMFA認証を要求する