皆様こんにちは。株式会社協栄情報システム3部所属の比嘉です。
Cloud9からIAMロールの作成をしていたのですが、権限エラーが発生してしまいました。
この記事では権限エラー発生の解決方法についてまとめていきます。

Cloud9の権限のしくみ

Cloud9とは

Cloud9は、ブラウザのみでコードを記述できるクラウドベースのIDE(統合開発環境)です。
Cloud9ではデフォルトで、AWS Managed Temporary Credentials(AMTC)が有効になっています。 これが有効になっていることで、AWSマネジメントコンソールへログインしたユーザーと同等の権限をもつ一時クレデンシャルキーが自動で発行され、すぐにCloud9上で開発作業を開始できます。

AMTCについて

AWS Cloud9でAMTCを利用してAWSサービスへリクエストを行う場合は、Cloud9に接続しているAWSエンティティとAMTCのいずれに対してもIAMで許可されたリソースおよびアクションのみ、リクエストが成功します。

権限エラーの解決

AMTCが有効になっている状態でIAMロール、ポリシーの作成を試みたところ、下記のエラーが発生しました。

AMTCを無効化する

Cloud9の画面を開き、右上の設定アイコンから、「AWS Settings」を開き、Credentialsをオフにします。

マネジメントコンソール画面からIAMロールを作成

次に「IAM」→「ロール」から「ロールの作成」をします。

信頼されたエンティティタイプ→「AWSのサービス」、ユースケース→「EC2」を選択します。

許可の追加で許可ポリシーに「AdministratorAccess」を選択します。

ロール名を入力し、ロールを作成します。

IAMロールの作成ができました。

Cloud9のEC2にIAMロールをアタッチ

IAMロールが作成できたら、EC2コンソール画面からIAMロールをアタッチします。

Cloud9からコードを実行

私はcloud9からterraformでIAMの作成を行っていたので、下記コマンドを実行します。
$ terraform apply

無事権限エラーの解決ができました!

まとめ

今回の権限エラーの発生はAMTCが有効になっており、IAMに対するアクションが制限されていたことが原因でした。
解決策としてAMTCを無効にし、Cloud9のEC2にIAMロールをアタッチすることで解決できました。

今回のエラー発生から、権限回りの知識の習得が必要だと思いました。

Last modified: 2022-05-18

Author