処理の実行
上位組織(組織ルート)IDを取得します。
コマンド:
ORGANIZATIONS_ROOT_ID=$( \
aws organizations list-roots \
--query 'Roots[?Name == `Root`].Id' \
--output text \
) \
&& echo ${ORGANIZATIONS_ROOT_ID}
結果(例):
変数の設定:
ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID_PARENT="${ORGANIZATIONS_ROOT_ID}" \
&& echo ${ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID_PARENT}
結果(例):
組織ユニットIDを取得します。
コマンド:
ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID=$( \
aws organizations list-organizational-units-for-parent \
--parent-id ${ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID_PARENT} \
--query "OrganizationalUnits[?Name == \`${ORGANIZATIONS_ORGANIZATIONAL_UNIT_NAME}\`].Id" \
--output text \
) \
&& echo ${ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID}
結果(例):
ポリシーIDを取得します。
コマンド:
ORGANIZATIONS_POLICY_ID=$( \
aws organizations list-policies \
--filter ${ORGANIZATIONS_POLICY_TYPE_NAME} \
--query Policies[?Name==\`${ORGANIZATIONS_POLICY_NAME}\`].Id \
--output text \
) \
&& echo ${ORGANIZATIONS_POLICY_ID}
結果(例):
Organizations組織ユニットにポリシーをアタッチします。
変数の確認:
cat << END
# ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID:"ou-xxxx-xxxxxxxx"
ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID="${ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID}"
# ORGANIZATIONS_POLICY_ID:"p-xxxxxxxx"
ORGANIZATIONS_POLICY_ID="${ORGANIZATIONS_POLICY_ID}"
END
コマンド:
aws organizations attach-policy \
--target-id ${ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID} \
--policy-id ${ORGANIZATIONS_POLICY_ID}
結果(例):
完了確認
「Organizations組織ルート直下のOrganizations組織ユニット"oregon-japan-ou"にOrganizationsポリシー"DenyAllOutsideRequestedRegions-policy"がアタッチされている。」ことを確認します。
コマンド:
aws organizations list-policies-for-target \
--target-id ${ORGANIZATIONS_ORGANIZATIONAL_UNIT_ID} \
--filter ${ORGANIZATIONS_POLICY_TYPE_NAME} \
--query "Policies[?Name == \`${ORGANIZATIONS_POLICY_NAME}\`].Name" \
--output text
結果(例):
DenyAllOutsideRequestedRegions-policy