Cloud9でIAMロールに共有させる方法


概要

方法

方法1. マネージメントコンソールから付与する

方法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時間でセッション切れちゃう。使い勝手悪いのでなんとかなったら嬉しいんですがね。