3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Megazone JapanAdvent Calendar 2023

Day 8

EC2 フルアクセスだけって言ったよね?(カスタムポリシー作成)

Last updated at Posted at 2023-12-08

MEGAZONE 株式会社 のテック陣「MEGAZONEのゆかいな仲間たち」がおくる、Megazone Japan Advent Calendar 2023 の8日目のエントリーです。

はじめに

前回の記事に補足でIAMポリシーを自作できることをお伝えしました。

AWSマネージドポリシー(AmazonEC2FullAccess等)では、関連する他のAWSサービスも許可されていたりするため、「本当にEC2だけのフルアクセス権限にしたい」 といった場合はカスタムポリシーを作成することで実現できます。

具体的には以下のようなEC2以外のAWSサービスの権限を消して...
image.png

↓↓↓

EC2だけのフルアクセス権限にしたい!といったケースです。
image.png

それでは上記を満たすカスタムポリシーを作成してみましょう。

カスタムポリシーの作成(EC2だけのフルアクセス権限)

IAMのページに移動し、ナビゲーションペイン(左メニュー)のPoliciesをクリックします。
IAMポリシーが一覧表示されるので右上のCreate policyをクリックします。
image.png

Policy editorはVisualを選択します。
Serviceの項目で「EC2」と入力すると候補が出てくるので、EC2を選択します。
image.png

今回作成するカスタムポリシーはEC2のフルアクセス権限なので、All EC2 actions (ec2:*) にチェックを入れます。EC2に関する全てのActionが許可されます。
image.png

下の方に注意マークで、Required permissions not selected.(必要な権限が選択されていません。)と出ていますね。

これは(EC2側で)許可したActionの中で、他のActionも許可する必要があるという注意となります。「1more」などをクリックすると詳細が表示され、別途許可が必要なActionが確認できます。
下記の場合はIAMの「iam:PassRole」が必要であることが分かります。※今回は許可設定しません
image.png

Resourcesは「All」を選択し、右下のNextをクリックします。
image.png

Review and createページではPolicy nameを決めて入力します。
作成するポリシーの権限を確認したら、右下のCreate policyをクリックします。

その後、マネジメントコンソールの上部に「Policy [Policy name] created.」と表示されたら作成完了です:thumbsup_tone2:

作成したカスタムポリシーの確認

IAMのPoliciesのページでPolicy nameを検索すると、作成したポリシー(カスタムポリシー)が確認できます。

※私はAmazonEC2FullAccess-EC2Only_CustomPolicyという名前にしました
image.png

ポリシーをクリックすると詳細が表示されます。EC2のFull accessだけであることが確認できました。
image.png

作成したカスタムポリシーの挙動確認

さっそくtest-user君にアタッチしてみました。

image.png

EC2以外のAWSサービスは警告が表示され、内容は確認できないようになっています。
EC2のページへ移動してみると、すでにAuto Scaling GroupsとLoad balancersの数が表示できずエラーになっていますね。(※権限があれば表示されます)
image.png

EC2インスタンスのMonitoring関連ではCloudWatchの権限がないため、グラフの表示ができません。
image.png

エラー文面詰め込みすぎ:sweat_smile:

To view this widget you need cloudwatch:GetMetricData because no identity-based policy allows the cloudwatch:GetMetricData action permission.
(このウィジェットを表示するには、cloudwatch:GetMetricData アクション権限を許可する ID ベースのポリシーがないため、cloudwatch:GetMetricData が必要です。)

ついでにIAMに関する権限もないため、IAMのページでも表示エラーとなり、自分にどんな権限があるかも分からず。
image.png

EC2インスタンスの起動や停止、EBSの作成等はできるので、EC2だけのシンプルな操作であれば問題なさそうです。
MonitoringについてはAWS外の監視ソリューションで行うって手もあるか:thinking:

おわりに

必要なアクセス許可のみ設定というのがベストプラクティスですが、どの権限が必要なのかを把握するのが課題になりそうですね。

「きめ細かな~」って言葉が好きなのですが、細かすぎると管理者が変わったら対応できなくなったり...。そのあたりは要件や運用ポリシーと相談でしょうか。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?