はじめに
AWSのコンソールで各サービスの設定値を確認したいといった際に、コンソールを操作していると、誤ってリソースを削除してしまったり変更してしまうリスクがあると思います。そういった場合に設定値参照時は読み取り権限、実際に設定値を変更したり、リソースを作成・削除したいときはAdmin権限のように、権限を用途によって使い分けられると安全ですよね?
今回はそういった場合の権限の使い分けの方法を紹介します。
スイッチロール(ロールの切り替え)
スイッチロールでは、普段は「ReadOnlyAccess」ポリシーを付与、設定値変更やリソース作成・削除時に「AdministratorAccess」ポリシーに切り替えるといったことを行うことができます。
実際にやってみた
■検証用作成リソース
| リソース名 | 説明 |
|---|---|
| IAMユーザー | 検証を行うための「ReadOnlyAccess」ポリシーのみ付与したIAMユーザー |
| S3バケット | スイッチロール後に作成可能になるS3バケット |
| IAMロール | 「AdministratorAccess」ポリシーを付与した、スイッチロール用のIAMロール |
■検証の流れ
1.検証用IAMユーザー作成
2.スイッチロール用IAMロール作成
3.現状の権限でのS3バケット作成
4.スイッチロール後のS3バケット作成
1.検証用IAMユーザー作成
まずは、検証を行うためのIAMユーザーを作成します。コンソールアクセスを有効にし、「ReadOnlyAccess」のみ付与したIAMユーザーを作成します。
※IAMユーザーに権限を付与するときにベストプラクティスとしては、IAMグループ経由での権限付与が推奨されていますが、今回は検証のため、直接IAMポリシーをアタッチします。
2.スイッチロール用IAMロール作成
続いて、「AdministratorAccess」ポリシーを付与した、スイッチロール用のIAMロールを作成します。また、信頼ポリシーには1で作成したIAMユーザーのみこのロールを使用できるように作成したIAMユーザーのarnを指定します。
3.現状の権限でのS3バケット作成
ここまでで検証の準備は完了したので、検証を行っていきます。まず、現在の「ReadOnlyAccess」のみが付与された状態のIAMユーザーにサインインし、S3バケットの作成を行っていきます。
このようにS3バケットを作成しようとすると権限エラーになり、S3バケットを作成することができません。
4.スイッチロール後のS3バケット作成
続いて先ほど2で作成したスイッチロール用のIAMロールにスイッチして、同様にS3バケットの作成を行っていきます。
スイッチロールを行ったら3と同様にS3バケットを作成します。

S3バケットを作成することができました!
まとめ
使用する権限を作業の用途によって、分けることで誤ってリソースを削除したり、変更してしまう可能性を下げることができます。
一度スイッチロールを挟むことによって、「リソース削除・変更ができてしまう」という意識をより強くもって作業することができるので、作業ミスも減るでしょう。















