☁️
【AWS Organizations】OUから別のOUへAWSアカウントを移動させる
はじめに
※個人的備忘録です。
AWS CLIがめちゃめちゃ便利ということを最近知りました。
shellスクリプト自体全然書いたことがないので変なスクリプトかもしれませんが。。
本題
jqコマンドを使用しています。
実装
#!/bin/bash
AWS_PROFILE_NAME= # aws cliのプロファイル
CURRENT_OU_ID= # 移動元OUのID
AFTER_OU_ID= # 移動先OUのID
GET_ACCOUNT_LENGTH= # 移動したいアカウント数
declare -a result=()
for account in $(
aws organizations list-accounts-for-parent \
--parent-id ${CURRENT_OU_ID} \
--profile=${AWS_PROFILE_NAME} \
--max-items=${GET_ACCOUNT_LENGTH} |
jq -r '.Accounts[].Id' |
sed -e "s/[\r\n]\+//g"
); do
aws organizations move-account \
--account-id=$account \
--source-parent-id=${CURRENT_OU_ID} \
--destination-parent-id=${AFTER_OU_ID} \
--profile=${AWS_PROFILE_NAME}
done
:
解説
aws organizations list-accounts-for-parent
で取得したAWSアカウントIDを使用して、
aws organizations move-account
でOUの移動をしています。
それだけです。
おわりに
SDKで使用する時のように最大返却数などを気にしなくていいのは非常に助かりますね。
しばらくCLIにハマるかもしれないです笑
Discussion