AWS Cloud9 から IAM権限のコマンド(IAMユーザー、IAMロールの作成など)が実行できるように設定する手順の解説です。
デフォルトの Cloud9 は IAM 権限の設定ができない
AWS Cloud9 は非常に便利です。
Cloud9 を使ってみてのメリット
ちなみに普段業務で AWS Cloud9 を利用していますが、非常に使い勝手がいいのでメリットを挙げてみました。
- 30分経過すると自動的にEC2インスタンスが停止するのでEC2の停止を忘れてもコストが増大することを防げる。
- 最初から主要なパッケージがインストールされている。例:aws cli、terraform、git等
- スクロールバッファが10万行まで可能。(Tera Termだと1万行くらいだから大体10倍くらい)
- SSM セッションマネージャ経由でアクセスすることでセキュリティグループのインバウンドルールを開けなくてよい。(すべてブロック状態にできる)
Cloud9に割り当たっているインスタンスプロファイル(IAMロール)を確認する
デフォルトでインスタンスプロファイル(IAMロール)が割り当たっているので、Cloud9 起動後にすぐに AWS CLI を実行して作業することができます。
しかし IAM 権限の設定(IAM ユーザー作成、削除など)を実行すると以下のようにエラーになります。
╷ |
Cloud9 にアタッチされているインスタンスプロファイルを確認します。
Cloud9 にアタッチされているインスタンスプロファイルを確認するとデフォルトのインスタンスプロファイル(AWSCloud9SSMInstanceProfile)が割り当てられていることが確認できます。
ちなみに Cloud9 の実態は EC2 インスタンスなので EC2 インスタンスのダッシュボードからインスタンスプロファイルを確認することができます。
解決策:Cloud9 のインスタンスプロファイルを他のIAMロールに変更する
Cloud9 のインスタンスプロファイルをデフォルトの「AWSCloud9SSMInstanceProfile」から他のIAMロールに変更することで十分な IAM権限の操作ができる権限を持たせることができます。
Cloud9 は全て英語表記になっています。個人的には日本語表記への切り替えができると嬉しいです。
メニューの「Cloud9」のマークをクリックして「Preference」をクリックします。
左側ペインより「AWS Settings」を選択し画像のように「AWS managed temporary credentials」のスイッチを「OFF」にします。
Cloud9 に割り当てる IAM ロールを作成する
次に Cloud9 に割り当てる IAM ロールを作成します。
IAM のダッシュボードに移動します。
左側ペインより「ロール」をクリックし「ロールを作成」ボタンをクリックします。
「信頼されたエンティティタイプ」に「AWS のサービス」を選択し「一般的なユースケース」に「EC2」を選択し「次へ」ボタンをクリックします。
IAM 権限の作成・変更・削除などを実施したい場合は「AdministratorAccess」を選択します。
選択したら「次へ」ボタンをクリックします。
「名前、確認、および作成」画面で「ロール名」や「説明」を以下のように設定して下にスクロールします。
追加したポリシーを確認して「ロールを作成」ボタンをクリックします。
Cloud9 のインスタンスプロファイルを設定する
次に Cloud9 のインスタンスプロファイルを設定します。
Cloud9 の EC2 インスタンスを選択し「アクション」-「セキュリティ」-「IAM ロールを変更」をクリックします。
デフォルトでは「AWSCloud9SSMInstanceProfile」になっています。
「IAM ロール」を先ほど作成した IAM ロールに変更して「IAM ロールの更新」ボタンをクリックします。
以上で Cloud9 から IAM 権限の操作ができるようになります。
コメント