概要
- Cloud9には、ペアプログラミング用にユーザーの共有設定がある。
- 共有設定を、IAMユーザーでなくIAMロールに設定する方法について記載。
- 実際、ここ(Environment と異なるアカウントのユーザーを招待する)に書いてあるままといえば、そのとおり。
方法
方法1. マネージメントコンソールから付与する
- Environment と異なるアカウントのユーザーを招待する
- 注意点は、共有するユーザー( [Invite Members (メンバーを招待する)] )には、スイッチロール(STS)時のARNを指定すること
- 例)
arn:aws:sts::[account_id]:assumed-role/[Role名]/[スイッチロールするIAMユーザー名]
- 例)
方法2. CLIから付与する
- 上記の手順にはないけど、CLIでも設定できる
- このとき、
EnvironmentId
指定でメンバー追加をしなきゃいけないけど、Listコマンドで取ったとき、Id
の情報しか取れんかったので、以下のスクリプトでいい感じに他情報も取って、create-environment-membership
実行しました。 -
create-environment-membership
の--user-arn
ももちろん、スイッチロール(STS)時のARNを指定すること
$c9_list = @(Get-C9EnvironmentList)
Write-Output $c9_list
$arrResults = @()
foreach ($c9_id in $c9_list) {
$c9_data = @(Get-C9EnvironmentData -EnvironmentId $c9_id)
$objResults = New-Object PSObject -Property @{
Arn = $c9_data.Arn;
Name = $c9_data.Name;
OwnerArn = $c9_data.OwnerArn;
}
$arrResults += $objResults
}
Write-Output $arrResults
# 実行結果
OwnerArn Name Arn
-------- ---- ---
arn:aws:iam::[account_id]:user/hoge hogehoge arn:aws:cloud9:[region名]:XXX:environment:[EnvironmentId]
・・・
# 実行結果のId使ってメンバー追加
aws cloud9 create-environment-membership --environment-id [EnvironmentId] --user-arn arn:aws:sts::[account_id]:assumed-role/[role-name]/[AssumeRoleするIAMユーザー名] --permissions read-write/read-only --region [region名]
せっかく設定しても残念だったこと
IAM ロールを使用する の制限でなんとセッション時間1時間から延長できないので、1時間でセッション切れちゃう。使い勝手悪いのでなんとかなったら嬉しいんですがね。