※以下は個人的なメモです。最新の正確な情報はAWSの公式ドキュメントを参照してください。
AWS Black Belt Online Seminar AWS Identity and Access Management (AWS IAM) from Amazon Web Services Japan
IAM
- 認証・認可の仕組み
権限設定
IAMポリシー
- ユーザーやリソースに対する権限設定
- JSON形式で記述。構造は以下の通り(ポリシーとアクセス許可 - AWS Identity and Access Managementより)。
- 以下のようなエレメントがある(IAM JSON ポリシーエレメントのリファレンス - AWS Identity and Access Managementより)
- Version: ポリシー言語のバージョン。2012-10-17 が最新。
- Effect: 許可または明示的な拒否(Allow / Deny)
- Action: 許可・拒否するアクションを設定(例: ec2:runInstances)
- Principal: リソースへのアクセスが許可または拒否されるユーザー、AWS アカウント、AWS サービスなど
- リソースベースのポリシーでは、リソースへのアクセスが許可されるアカウントまたはユーザーを指定する
- Resource: 操作を許可・拒否する対象(EC2インスタンス、S3バケット等)を指定
- ARN(Amazon Resource Name)で記述
- 「NotResource」で指定リソース以外を指定できる
- Condition: Resourceに対するActionを許可(もしくは拒否)するかどうかの 条件設定
IAMロールと Security Token Service (STS)
Security Token Service (STS)
- 動的にIAMユーザーを作成し、ポリシーを適用できる
- IAM Role for EC2はSTSを利用している
- 一時的セキュリティ認証情報(Temporary Security Credentials)は以下の3つからなる
- アクセスキー
- シークレットアクセスキー
- セッショントークン
- デフォルトでグローバルサービスとして単一エンドポイント: https://sts.amazonaws.com
監査
CloudTrail
Access Advisor と Service Last Accessed Data
- IAMエンティティ (ユーザー、グループ、ロール) が、最後にAWSサービスにアクセス した日付と時刻を表示する機能
IAM認証情報レポート(Credential Report)
- 各IAMユーザーがMFAを利用しているか、アクセスキーや証明書がアクティブか、パスワードやアクセスキーのローテート日時などをCSV形式でダウンロードすることができる
ベストプラクティス
AWS Black Belt Online Seminar AWS Identity and Access Management (AWS IAM) from Amazon Web Services Japan
- アクセスキーのローテーション
- 定期的にパスワードとアクセスキーを変更する(手動運用)-
- AWSアクセスキー・ローテーションのススメ | DevelopersIO