0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Organizationで各種サービスの委任先を確認する

Posted at

委任先の確認方法

organizations::ListDelegatedAdministrators と organizations::list-delegated-administrators API を利用し、以下の手順で取得します。

1. 委任された管理者一覧の取得

aws organizations list-delegated-administrators

2. 委任された管理者に委任されているサービスの確認

XXXXXXXXXXXX の部分は前のステップで確認した管理者のアカウントIDです。

aws organizations list-delegated-services-for-account --account-id XXXXXXXXXXXX

確認用スクリプト

以下のスクリプトで全委任先アカウントに委任したサービスが確認できます。

#!/usr/bin/env bash
set -euo pipefail

# 1. 委任管理者一覧取得
admins_json=$(aws organizations list-delegated-administrators)

# 2. アカウント ID / Name 抽出 (配列化)
account_lines=$(echo "$admins_json" | jq -r '.DelegatedAdministrators[] | [.Id,.Name] | @tsv')

# 3. 各アカウントでサービス一覧取得しオブジェクト生成
tmp_objects=()
while IFS=$'\t' read -r acc_id acc_name; do
  [[ -z "$acc_id" ]] && continue
  services_json=$(aws organizations list-delegated-services-for-account --account-id "$acc_id")
  services_array=$(echo "$services_json" | jq '[.DelegatedServices[] | {ServicePrincipal, DelegationEnabledDate}]')
  obj=$(jq -n --arg id "$acc_id" --arg name "$acc_name" --argjson svcs "$services_array" '{($id): {account_name: $name, delegated_services: $svcs}}')
  tmp_objects+=("$obj")
done <<< "$account_lines"

# 4. マージして出力
if [[ ${#tmp_objects[@]} -gt 0 ]]; then
  printf '%s\n' "${tmp_objects[@]}" | jq -s 'reduce .[] as $i ({}; . * $i)'
else
  echo '{}' | jq '.'
fi

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?