S3で特定のユーザーを拒否する。
はい皆さんこんにちは
結論から言うとこの記事は
アカウント内で運用ユーザーが複数居るような時に、S3バケット毎にアクセス拒否設定を入れる方法を書いています。
詳細
環境:
Amazon S3(2020/11時点)
IAMユーザーは以下が登録されている想定で書いています。これらのユーザーにはS3のアクセス権限を付けています。
・MITA-JIRO
・SINAGAWA-JIRO
・KABUKICHO-JIRO
注意事項:
rootユーザー(アカウントの持ち主)をホワイトリストに入れる方法が最後まで分かりませんでした。
まぁ運用で使わないユーザーだからええやろという整理になりましたが、情勢が変わったら更新します。
なお、rootユーザーはS3のポリシーを書き換える権限は持っているので、何も出来ないわけではないです。
##ブラックリスト形式
以下のように書きます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1600141533754",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::your-s3-name",
"Condition": {
"StringEquals": {
"aws:username": "KABUKICHO-JIRO"
}
}
}
]
}
##ホワイトリスト形式
以下のように書きます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1600141533754",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::your-s3-name",
"Condition": {
"StringNotEquals": {
"aws:username": "MITA-JIRO"
}
}
}
]
}
##感想
今後もユーザーが増えるような運用を考えるならホワイトリスト形式が良いのですが、
これだとrootユーザーをリストに入れられませんでした。
また、ぱっと見で分かりにくいというのもあって、個人的にはブラックリスト形式を押したいところです。
(rootユーザーの件が解決したらホワイト派になるかも。。)
ありがとうございました。