PMする上で必要になってきたのでおさらい
AWS IAMとは?
AWSリソースへのアクセスを安全に管理するためのサービス。要するに権限設定して制限をかけるやつ。
IAMの特徴
-
ユーザーとアクセス管理
- 個別のユーザーやグループにアクセス権限を付与。
- 例: 開発者にEC2の管理権限、マーケティング担当者にS3の読み取り権限。
-
詳細な権限制御
- 「最小権限の原則」を実現するため、必要最低限の権限を付与可能。
- JSON形式で細かいポリシーを設定。
-
多要素認証(MFA)
- パスワードに加えてワンタイムパスコードなどを要求し、セキュリティを強化。
-
一時的な権限(STS: Security Token Service)
- 特定のタスクに必要な権限を一時的に発行。
-
監査とログ
- IAMはCloudTrailと連携して、アクセスログや操作履歴を記録。
IAMの主な要素
-
IAMユーザー
- AWSリソースへのアクセスが必要な個人(またはアプリケーション)。
- アクセス方法:
- コンソールアクセス: AWS管理コンソールにログイン。
- プログラムアクセス: APIやCLIを使用。
-
IAMグループ
- 共通の権限を共有するユーザーの集合。
- 例: 「開発者」グループにEC2管理権限、「運用チーム」グループにCloudWatchアクセス権限。
-
IAMポリシー
- ユーザー、グループ、ロールに割り当てる権限を定義するJSON形式のドキュメント。
- 例: S3の特定バケットに読み取り専用権限を付与するポリシー。
-
IAMロール
- AWSリソースに一時的な権限を付与するためのもの。
- 例: EC2インスタンスにS3へのアクセス権限を与えるロール。
IAMの主なユースケース
1. EC2インスタンスからS3にアクセス
- シナリオ: アプリケーションがEC2で動作しており、S3にデータを保存する必要がある。
-
解決方法:
- IAMロールを作成し、EC2インスタンスに付与。
- ポリシーでS3へのアクセス権限を設定。
2. 最小権限のアクセス制御
- シナリオ: 開発チームにS3の読み取り権限を付与するが、書き込みは許可しない。
-
解決方法:
- 「S3: GetObject」アクションのみ許可するIAMポリシーを作成。
- 開発者グループに割り当て。
3. MFA(多要素認証)の設定
- シナリオ: 管理者アカウントのセキュリティを強化したい。
-
解決方法:
- IAMユーザーにMFAを有効化。
- ログイン時にパスワード+ワンタイムパスコードを要求。
4. サードパーティツールのアクセス管理
- シナリオ: CI/CDツール(例: GitHub Actions)がAWSリソースにアクセスする必要がある。
-
解決方法:
- IAMロールを作成し、一時的なトークンを発行。
- 必要なサービス(例: CodeDeploy)への権限を設定。
IAMポリシーの例
S3バケットの読み取り専用ポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}
特定のIPアドレスからのみアクセスを許可するポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "192.0.2.0/24"
}
}
}
]
}
IAMのメリットとデメリット
メリット
-
セキュリティの向上
- 最小権限の原則で、過剰なアクセス権限を防止。
- MFAで認証プロセスを強化。
-
柔軟なアクセス制御
- JSONポリシーで細かい制御が可能。
- 一時的なトークンで不要な長期権限を回避。
-
監査とコンプライアンス
- CloudTrailで全ての操作をログに記録し、監査対応が容易。
デメリット
-
設定の複雑さ
- 初心者にはポリシーの記述や権限管理が難しい場合がある。
-
誤った設定のリスク
- 不必要に広い権限を付与すると、セキュリティリスクが増大。
IAMのベストプラクティス
-
最小権限の原則
- 必要最低限の権限のみ付与する。
-
MFAを有効化
- 特に管理者ユーザーにはMFAを必須にする。
-
ロールを活用
- アプリケーションやサービスにはIAMユーザーではなくロールを使用。
-
ポリシーを定期的に見直す
- 不要な権限や古いポリシーを削除。
-
CloudTrailを活用
- すべての操作を記録し、不正アクセスやミスを追跡可能にする。
感想
WordPressの案件でセキュリティ心配なものが多いので、とても良い勉強になった。