はじめに
こんにちは、開発部の一筒です!
AWS IAMポリシーやバケットポリシーは、AWSの認証とアクセス管理を行う重要な設定です。
ポリシーを正しく理解しないと、適切な権限設定ができず、セキュリティリスクが生じる可能性があります。
本記事では、IAMポリシーを含むAWSのアクセス制御ポリシーの基本的な読み方について解説します。
ポリシーとは?
AWSのアクセス制御ポリシーは、AWSリソースへのアクセスを制御するためのJSON形式のドキュメントです。
IAMポリシー、S3バケットポリシーなどの種類があり、それぞれ異なるリソースに対して適用されます。
公式に詳しく紹介されています
ポリシーの主な構成要素は次のとおりです。
要素 | 説明 |
---|---|
Effect | Allow(許可)または Deny(拒否)を指定 |
Action | 許可または拒否するAWSの操作(例: s3:PutObject) |
Resource | 操作を適用するAWSリソース(例: arn:aws:s3:::my-bucket/*) |
Condition | 条件付きで権限を適用する場合に使用 |
詳しいアクションや条件はサービスによって違います
詳細は公式をご確認ください
ポリシーの構造を読む
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {
"aws:SourceIp": "192.168.1.1"
}
}
}
]
}
- Effect が Allow なので、許可するルール
- Action で s3:PutObject(S3バケットへのオブジェクトアップロード)を許可
- Resource で my-bucket 内のすべてのオブジェクト(/*)を対象とする
- Condition で特定のIPアドレス (192.168.1.1) からのアクセスのみ許可
ポリシーの評価順序
- 明示的な拒否 (Deny) が最優先
- 明示的な許可 (Allow)
- 暗黙的な拒否(デフォルトではすべての操作が拒否される)
ポリシーの競合時の動作
以下のようなAllowとDenyが一緒に入ってるポリシーの場合:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "s3:DeleteObject",
"Resource": "arn:aws:s3:::example-bucket/*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}
どのように動作するか?
- s3:* によって example-bucket のすべての操作が許可されるが…
- s3:DeleteObject については Deny されているので、削除はできない。
→ 明示的な Deny が優先されるため、削除操作は不可!
試験対策: ポリシーの問題例
Q. 次のポリシーをアタッチされたIAMユーザーが実行できる操作はどれか?
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ec2:StartInstances", "ec2:StopInstances"],
"Resource": "*"
}
]
}
選択肢:
- EC2インスタンスの作成 (ec2:RunInstances)
- EC2インスタンスの開始 (ec2:StartInstances)
- EC2インスタンスの削除 (ec2:TerminateInstances)
- S3バケットの作成 (s3:CreateBucket)
解答:
◯ 2. EC2インスタンスの開始 (ec2:StartInstances) が正解。
◯ 3. EC2インスタンスの停止 (ec2:StopInstances) も許可されている。
× 1, 4 は許可されていないため不可。
まとめ
- Effect の Allow / Deny の評価順序を把握する
- Action、Resource、Condition を適切に設定する
- AWS試験では、ポリシーの評価順序や動作を問う問題が多いため、試験対策を意識して学習する
アクセス制御ポリシーはセキュリティの根幹となる部分なので、試験だけでなく実務でもしっかり理解しておきましょう!
簡単ですがAWSのアクセス制御ポリシーについてご紹介させていただきました。
少しでもご参考になれば幸いです
はつかぜ株式会社では、IT学習や業務に役立つ情報を定期的にお届けしていきたいと思っています。
システム開発のお問い合わせ・ご相談はこちら