はじめに
皆さんの会社で AWS Cloud9 は活用されていますでしょうか。
弊社でも幾つかのシステムで AWS Cloud9 を開発環境として採用しています。
便利ですよね。AWS Cloud9。
ところで、そんな中に 管理者不在の AWS Cloud9 環境 は存在していないでしょうか。
ここでいう管理者不在とは…
- 環境を作った人が既に退職している
- 環境を作った人が休職中ですぐに連絡がつかない
- 環境を作ったIAMユーザを削除してしまった
といった開発環境の事を指しています。
今回はそんな AWS Cloud9 に対して権限を付与して欲しいと依頼され、
少し困った際の対応方法について記載していきます。
管理者不在の AWS Cloud9 環境とは
AWS Cloud9 は通常、環境の所有者から共有されない限りアクセス権が付与されません。
(上記図のように共有されていない環境は「アクセスなし」となります。)
そんな環境に後からアクセス権を付与する方法を記載します。
どうすればよいか
前提条件
アクセス権付与の前提条件として以下2つが必要になります。
- 作業者が対象アカウント上で AWS CloudShell の利用権限を持つ事
- 作業者が AWS Cloud9 に対する Admin 権限を持つ事
実施コマンド
権限付与自体は AWS CloudShell から コマンドを通じて実施可能です。
aws cloud9 create-environment-membership --environment-id <環境ID> --user-arn <UserARN> --permissions <Permission>
環境IDは付与したい環境の画面から確認できます。
環境が実行されているEC2インスタンスのARN末尾にある environment: xxxxxxx
の xxxxxxx
部分が環境IDになります。
UserARNは権限を付与したいIAMユーザのARNを調べて入力してください。
Permission は read-write
または read-only
と入力してください。
もし権限付与対象者がSAML連携ログインだった場合
権限付与する人がIAMユーザでログインしている場合は上記手順で権限付与出来ます。
しかし、権限付与対象者がADFSとSAML連携している場合はコマンドが少し変わります。
aws cloud9 create-environment-membership --environment-id <環境ID> --user-arn arn:aws:sts::<アカウントID>:assumed-role/<RoleName>/<UserMailAddress> --permissions <Permission>
上記の様に、<UserArn>
の部分を ADFS経由でログインしているユーザの利用するRole
+ ユーザのメールアドレス
の形式で指定して権限を付与する形になります。
最後に
開発環境は得てして乱立し、管理者不在な状況になりがちかと思います。
そんな環境に権限付与が必要な事態に出くわした方の力になれれば幸いです。
最後に、環境の所有者であるユーザーアカウントを削除してしまった場合の詳細や、具体的に必要な権限が記載されていますので、こちらも是非参考にしてみてください。
弊社では一緒に働く仲間を募集中です
現在、様々な職種を募集しております。
カジュアル面談も可能ですので、ご連絡お待ちしております!
募集内容等詳細は、是非採用サイトをご確認ください。
https://engineer.po-holdings.co.jp/