IAM
IAMポリシー
JSON形式で設定する
Effect
- ”Allow" => 許可
- "Deny" => 拒否
- Action
- 対象のAWSサービス
- Resource
- 対象のAWSリソース(ARN形式)
- AmazonResourceName(https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-arns-and-namespaces.html)
- Condition
- アクセス制御が有効となる条件
IAMユーザー
- IAMポリシーを付与されたユーザー
- rootアカウント
- AWSアカウント作成時に作成される
- rootユーザーのみ実施できる権限がある
- 普段は使わないほうがいい
- 管理者ユーザー
- 管理者権限の許可が付与されたIAMユーザー
- IAMを操作できる
- パワーユーザー
- IAM以外のすべてのAWSサービスにフルアクセスできる
- IAMの操作はできない
IAMグループ
- グループとして権限をまとめて設定された単位のこと
IAMロール
- AWSWSリソースに対するアクセス権限のこと
IAM権限ベストプラクティス
- AWS アカウントのルートユーザー アクセスキーをロックする
- 個々の IAM ユーザーを作成する
- IAM ユーザーへのアクセス許可を割り当てるためにグループを使います
- 最小限の特権を認める
- AWS 管理ポリシーを使用したアクセス許可の使用開始
- インラインポリシーではなくカスタマー管理ポリシーを使用する
- アクセスレベルを使用して、IAM アクセス許可を確認する
- ユーザーのために強度の高いパスワードポリシーを設定する
- MFA の有効化
- Amazon EC2 インスタンスで実行するアプリケーションに対し、ロールを使用する
- ロールを使用してアクセス許可を委任する
- アクセスキーを共有しない
- 認証情報を定期的にローテーションする
- 不要な認証情報の削除
- 追加セキュリティに対するポリシー条件を使用する
- AWS アカウントのアクティビティの監視
IAM設計
- 少数利用はIAMユーザー
- 組織利用はIAMグループ
IAMポリシー
- AWSリソースにアクセスするための権限設定
- AWSが用意してくれているものがめちゃくちゃある
- AWSが用意しているポリシーを組み合わせて自作のポリシーが作成できる
- EC2フルアクセスとS3フルアクセスをまとめたポリシーとか
- IAMユーザー、IAMロール、IAMグループに紐付ける
IAMロール
- AWSリソースやユーザーに付与するもの
- 実態はIAMポリシーの集合
- EC2にS3へのアクセス権を持ったロールを付与することで、EC2からS3へ保存処理
- EC2やLambdaに付与して、「それらが他AWSリソースに対してできることを増やす」みたいな使い方が多いらしい
- 監査人などに一時的な権限を移譲するときにも使う
- アカウントAでロールを作成し、アカウントBでロールARNを指定して権限を移譲する
- JSON形式でポリシー指定
アクセスアナライザー
- AWSリソースに紐付いているポリシーを検査し、管理者として"意図せぬ公開設定がされていないか"を検出および可視化してくれる機能
- 新規または更新されたポリシーを継続的に監視
- 付与されたアクセス許可を数学的なロジックや推論を使用して分析
- アクセス制御状況のインパクトを集約、可視化
- 利用されているアカウントの外側からの意図しないアクセスからリソースが保護されていることが確認できる
AWS Organizations
- 複数のAWSアカウントをまとめて管理する
- IAMはアカウント内のユーザーを管理