IAM Identity CenterのユーザーにCloud9の操作権限を付与した件

technologies

おはようございます!ベンジャミンの木村です!

皆さんはCloud9を使って、複数のユーザー間でコードを共有して開発をしたり、ペアプロをしたりしますか?

今回、とあるユーザが構築したCloud9を利用しようとしたところ、私のIAM Identity Centerユーザ(Administrator権限あり)でアクセスできませんでした。

調査した結果、Cloud9構築ユーザから招待を受ける必要があったのでその方法を紹介しようと思います!

Cloud9とは

AWS Cloud9 は統合開発環境、または IDE です。

この AWS Cloud9 IDE では、リッチなコード編集エクスペリエンスを実現しており、複数のプログラミング言語、ランタイムデバッガ、および組み込みターミナルがサポートされています。また、クラウドでソフトウェアのコード作成、ビルド、実行、テスト、デバッグに使用するツールが含まれており、ソフトウェアをクラウドにリリースするのに役立ちます。

https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/welcome.html

「統合開発環境」なんて難しい日本語使われてもわからないよ〜という方は、VS Codeと同じようなもの!という認識を持っていただければ大丈夫です!

要はAWS上のオンライン環境で使える、VS Codeなんだな〜と思っていただければ!

IAM Identity Centerとは?

AWS IAM Identity Center AWS のサービス AWS リソースへのヒューマンユーザーアクセスを管理する場合に推奨されます。workforce identities としても知られるワークフォースユーザーに複数の AWS アカウント およびアプリケーションへの一貫したアクセス許可を 1 か所から割り当てることができます。IAM ID センターは追加料金なしで提供されます。

https://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/what-is.html

こちらもよくわからんという方は、複数のアカウントを跨いで使えるIAM ユーザーと覚えていただければ大丈夫です!

下記図のように、他のアカウントでそのユーザーがどのような権限を持って振る舞えるかを決めることができます。

[通常のIAMユーザー]

同じアカウント内では付与された権限に沿って色々な操作可能

[IAM Identity Center のユーザー]

別のアカウントでは、付与された権限に沿って色々な操作可能

今回起きた事象

IAM Identity CenterでAdmin権限を与えられたユーザーAが、別のアカウントのユーザーBが作ったCloud9で操作をしようとしたところ、権限不足でCloud9が開けない事象が発生…

原因としては、Cloud9の操作権限はCloud9のワークスペースの中に入ってから、追加で個別のユーザー毎に設定する必要があるからになります。AWSのAdmin権限だけでは、ワークスペースの操作権限は持てないのですね…

次のタイトルよりその設定方法を記載させていただきます!

ちなみに、今回の事象は同じアカウント内のIAMユーザーでも発生します。その場合の設定方法は下記サイトが大変分かりやすいのでご参照下さい。

https://skillhub.jp/blogs/198

また、IAM Identity Centerの作成については下記ブログサイトが大変分かりやすいのでご参照下さい。

https://qiita.com/sakai00kou/items/086a12caa69a78c18f61

Cloud9の操作権限を付与手順

1. 以下URLよりIAMロールのコンソール画面へ移動する

https://us-east-1.console.aws.amazon.com/iam/home?region=ap-northeast-1#/roles

2. 「AWSReservedSSO_」と検索し、出てきたIAMロール名を控える

IAM Identity Centerでユーザーを作った際に、そのユーザーがログインするアカウントには、IAM ロールに “AWSReservedSSO_“と、”IAM Identity Center のアクセス権件セット名” を組み合わせた以下のような IAM ロール名が作成されます。

AWSReservedSSO_<IAM Identity Center のアクセス権限セット名>_<ランダムな文字列>
※今回はAWSReservedSSO_AdministratorAccess_<ランダムな文字列>に権限を与える手順で進めます。

3. 以下URLよりCloud9のコンソール画面へ移動する

https://ap-northeast-1.console.aws.amazon.com/cloud9control/home?region=ap-northeast-1#/

4. 権限付与したいCloud9の「開く」をクリックする

5. 右上の「Share」をクリックする

6. 赤枠の部分に以下の情報を入力し、「Invite」ボタンをクリックする。

arn:aws:sts::<Cloud9 環境を構築した AWS アカウントID>:assumed-role/<IAM ロール名>/<IAM Identity Center ユーザー名またはメールアドレス>

※<IAMロール名>は項番2で控えたIAMロール名をご使用ください

※以下画面の「RW」を選択することで読み書き可能の権限を与えることが可能になります

7. 「Invite」したユーザーがリストに加えられていたら作業完了

まとめ

いかがでしたでしょうか?

よりセキュアに複数のアカウント管理が楽にできるようになるIAM Identity Centerですが、Cloud9の権限操作について、調べても良い情報が見つからなかったため記事にしました

細かいところですが、一人でも多くのエンジニアの助けになれば幸いです。

関連記事一覧