🎴
AWS ポリシーの種類を認識しました
AWSのポリシーの種類を認識したので、メモしておきます。
ポリシー
AWSのリソースへのアクセスや操作を制御するルールのこと。**「誰が、どのリソースに、どんな条件で、どんな操作ができるか」**を細かく設定できる。
例えば、特定リソースに特定IPからのアクセスしかできないようにしたり、特定のユーザーしかアクセスできないようにしたりするときに使います。
アクセス制御系でよく聞くもので言うとIAM(Identity and Access Management)とかがあると思うのですが、IAMユーザーに付与する具体的なルール設定の部分がポリシーです。
ポリシーの分類として、アイデンティティポリシーとリソースベースポリシーがあります↓↓。
アイデンティティベースポリシー
アイデンティティ (ユーザー、ユーザーグループ、ロール) に付与するもの。アイデンティティ (ユーザー、ユーザーグループ、ロール)が、実行できるアクション/リソース/条件を制御します。
- AWS managed policy
- AWSが用意してくれているポリシー。AWSが大まかに作成してくれている、出来合いのポリシー。
- そのまま使えるので、楽です。
-
AWS managed policiesのリスト
- 例: AmazonECS_FullAccess -> ECSのこと全部できる
- custom policy
- 自作するポリシー。細かい制御までできます。
特定IPからのアクセス許可{ "Version": "2012-10-17", "Statement": { "Effect": "ALLOW", "Action": "*", // 全許可は実運用では良くない "Resource": "*", // 全許可は実運用では良くない "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.x.x/24", ] } } } }
- inline policy
- 単一アイデンティティに直接設定するポリシー
- アイデンティティが消えるタイミングでポリシーも消える。儚い。再利用するものではない。
- 逆に再利用できないので、特定の1つのポリシーを特定のアイデンティティにだけ設定したい場合は向いている。
リソースベースポリシー
リソース(s3,ecs,opensearchなど)に対して実行できるアクション/リソース/条件を制御します。
- リソースベースのポリシーはinline policyのみです。AWS managed policyはない。
- リソースベースポリシーは再利用する想定があんまりないからかと思われます。(多分)
- クロスアカウントアクセス(別のAWSアカウントからのアクセス)も設定可能
- 書き方は同じ
特定のユーザーからのアクセス許可
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxxxxxx:user/cinnamon-user-xxxx"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:831926594566:domain/cinnamon-staging/*"
}
]
}
まとめ
- ポリシーにも分類あり
Discussion