Cloud9環境を共有した際の環境認証
Cloud9を環境を構築したIAMユーザー以外に共有したとき、その環境から実行するCLIコマンドやSDKプログラムにはどの権限が適用されるのかを確認しました。
目次
確認結果
環境の認証情報が使用されるので次のとおりでした。
- AWSマネージド一時認証情報がONの場合
環境を構築したIAMユーザー、IAMロールの権限 -
AWSマネージド一時認証情報がOFFで.aws/credentialsに認証情報がある場合
.aws/credentialsの権限 -
AWSマネージド一時認証情報がOFFで、.aws/credentialsがなくCloud9のEC2にIAMロールが設定されている場合
IAMロールの権限
共有する場合は、AWSマネージド一時認証情報を使用するべきではなさそうです。
開発環境として必要なIAMロールを設定してあげる方法が良さそうです。
確認手順
AWSマネージド一時認証情報がONの場合
IAMロールを引き受けた状態でCloud9環境を構築して、IAMユーザーCloud9ShareUserを招待しました。
Cloud9ShareUserでマネジメントコンソールにサインインして、Cloud9環境にアクセスして、sts get-caller-identityで権限を確認しました。
1 2 3 4 5 6 7 |
$ aws sts get-caller-identity { "UserId": "AXXXXXXXXXXXXXXXXXXXX:yamashitam", "Account": "123456789012", "Arn": "arn:aws:sts::123456789012:assumed-role/OrganizationAccountAccessRole/yamashitam" } |
Cloud9環境を構築したIAMロールを引き受けたセッションの権限で実行されていることがわかりました。
AWSマネージド一時認証情報がOFFで.aws/credentialsに認証情報がある場合
環境を構築したIAMロールセッション側で、AWSマネージド一時認証情報をOFFにしました。
この操作は共有されたIAMユーザー側ではできませんでした。
CLIコマンドaws configureを実行して、IAMユーザーCloud9ShareUserのアクセスキーIDとシークレットアクセスキーを設定しました。
aws configureは構築した側でも招待された側でもどちらでも設定可能でした。
EC2インスタンスにEC2DefaultというIAMロールも引き受けるよう設定しました。
EC2インスタンスでは、IAMロールよりも.aws/credentialsが優先されるのでこれで検証できます。
招待されているCloud9ShareUserで、sts get-caller-identityで権限を確認しました。
1 2 3 4 5 6 7 |
$ aws sts get-caller-identity { "UserId": "AXXXXXXXXXXXXXXXX", "Account": "123456789012", "Arn": "arn:aws:iam::123456789012:user/Cloud9ShareUser" } |
.aws/credentialsの権限が適用されています。
AWSマネージド一時認証情報がOFFで、.aws/credentialsがなくCloud9のEC2にIAMロールが設定されている場合
rm ~/.aws/credentials で削除しました。
招待されているCloud9ShareUserで、sts get-caller-identityで権限を確認しました。
1 2 3 4 5 6 7 |
$ aws sts get-caller-identity { "UserId": "AXXXXXXXXXXXXXXXXXX:i-0fdeefbac6a24eaff", "Account": "123456789012", "Arn": "arn:aws:sts::123456789012:assumed-role/EC2Default/i-0fdeefbac6a24eaff" } |
EC2インスタンスに設定したIAMロールの権限が適用されています。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
kintoneに登録されたアカウントの電話番号にGoogleカレンダーの予定をAmazon Pollyが読み上げてTwilioから電話でお知らせする(AWS Lambda Python)
Google Calendar Twilio Reminder Googleカレ …
-
-
Amazon Auroraのスナップショットの暗号化とリージョン間コピーを改めて試しました
Amazon Auroraデータベースを暗号化して、スナップショットを作成、クロ …
-
-
EC2 VyOSで/etc/resolv.confを設定しました
EC2でVyOSを起動してSSHで接続して確認していたところ、どうもVyOSから …
-
-
AWS CDKでクロススタックリファレンスをする
CloudFormationで複数のスタックで参照することがあります。 それをC …
-
-
リザーブドインスタンス推奨事項を確認した
マネジメントコンソールで[AWSコスト管理]カテゴリの[AWS Cost Exp …
-
-
JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
Windows EC2インスタンスでEBSとインスタンスストアを使用する
Amazon EBS基本のデモ(「AWS認定試験テキスト AWS認定 クラウドプ …
-
-
ChatGPT APIをTeamsボットから使いました(AWS Lambda(Python) + API Gateway)
ChatGPT APIが有償で利用可能になったので、会社のTeamsボットに実装 …
-
-
AWS Cloud9でJavaサンプルを実行する
リモートで共有開発ができるCloud9便利ですね。 Cloud9でJavaのサン …
-
-
Amazon Quantum Ledger Database(QLDB)でサンプル台帳の作成と検証
Quantum Ledger Database(QLDB)を触ったことなかったの …