技術4課の鎌田(裕)です。
マネジメントコンソールでのアクセス時にSwitch Roleを使いこなしてらっしゃる方は多いかと思います。
しかし、コマンドベースでお使いの方はなかなか少ないかも知れません。
この記事では、PowerShellでIAM RoleにSwitchして、作業をする時の方法と、必要な準備をご紹介します。
手順としては、以下の流れになります。
- IAMユーザーを作る
- IAMユーザーにSwich Roleの権限だけを与える
- 実際の作業をする時の権限を持ったIAM Roleを作る
- PowerShellにAccess Keyの情報を登録
- 実際にSwichしてみる
そもそもIAM Roleってなんだ、と思われた方は、別記事にてIAM roleの解説をしていますので、そちらを併せてお読みください。
本件の手順は、AWSドキュメントのこちらの手順も併せてお読みください。
PowerShellでSwitch Roleの手順
1.IAMユーザーを作る
まずはSwich Role専用のユーザーを作ります。Switch Roleの権限はJSONで書く必要があるため、一旦ポリシーのアタッチはせずに進めましょう。
プログラムからのアクセスにチェックを入れるのをお忘れなく。
アクセスキーが発行されたら、保存しましょう。この後の手順で使います。
2.IAMユーザーにSwitch Roleの権限だけを与える
以下のような内容のポリシーで、Swich Roleの権限を持たせられます。
3.の手順で作成するRole名をここで決めておく必要があります。また、付けたRole名は忘れないようにしましょう。この後の手順に必要です。
{
“Version”: “2012-10-17”,
“Statement”: {
“Effect”: “Allow”,
“Action”: “sts:AssumeRole”,
“Resource”: “arn:aws:iam::AWSアカウント番号:role/role名”
}
}
1.で作成したユーザーをクリックしてアクセス権限のタブを表示し、のインラインポリシーを作成して、JSONで上記の内容を貼り付け、権限を割り当てます。
3.実際の作業をする時の権限を持ったIAM Roleを作る
Switch RoleするRoleを作成します。同一AWSアカウントのSwitch Roleの時でも、Roleを作る時は「別のAWSアカウント」のところを選択してください。
アカウントIDを入力し、必要な権限のポリシーをアタッチし、名前を付けたら作成します。
4.PowerShellにAccess Keyの情報を登録
PowerShellを起動して、1.で作成したアクセスキーを登録します。
以下のコマンドを実行します。
Set-AWSCredential -AccessKey 発行されたアクセスキー -SecretKey 発行されたシークレットキー -StoreAs アクセスキーを保存するストア名
これで準備が整いました。
5.実際にSwitchしてみる
実際にSwitchしてみましょう。以下のようなコマンドを実行します。これで、登録したアクセスキーを使って、Roleから一時アクセスキーを取得しています。
$creds = (Use-STSRole -RoleArn “arn:aws:iam::AWSアカウント番号:role/role名” -RoleSessionName test -ProfileName アクセスキーを保存したストア名).Credentials
実際にコマンド実行後、変数の中身を見ると、
ちゃんとアクセスキーが取れて、期限も設定されていますね。
発行された一時アクセスキーを使う
発行された一時アクセスキーを使う時は、各コマンドを実行する時に必ず、
-Credential $creds
というオプションを付ければOKです。
おわりに
Power Shellでも簡単に、Switch Roleが出来ることがお分かりいただけると思います。
Roleを使いこなして、よきAWSライフを!