AWS Organizations の組織を削除する方法
はじめに
AWS Organizations(以下、Organizations)では、OU やメンバーアカウントを柔軟に変更(移動や除外、削除)可能です。そのため、Organizations の組織そのものを削除する機会はあまりないと思います。
しかし、今回のっぴきならない理由につきその機会がありましたので、方法を記事にしてみました。
組織の削除方法
AWS における一般的な操作と同様に、AWS CLI から削除する方法とマネジメントコンソールから削除する方法の 2 通りがあります。今回は、いずれの方法についても確認します。
注意点
最初に注意点をまとめます。
- 一度削除した組織や削除後に組織内で作成した SCP は復元できません。
- 組織の削除を行う前に、メンバーアカウントを 削除 か 除外 する必要があります。
- 組織の削除は、管理アカウントのみの状態で行う必要があります。メンバーアカウントが組織内に残っている場合、組織は削除できません。
- メンバーアカウントが組織内に残ったまま組織を削除しようとすると、次の様なエラーが発生します
To delete an organization you must first remove all member accounts (except the master).
。 - メンバーアカウントを除外する場合、スタンドアロン AWS アカウントとしての条件(請求情報や電話番号の登録等)を満たしておく必要があります。
- 組織の削除前に属していたメンバーアカウントを閉鎖していた場合、AWS アカウントが削除される(最大 90 日)までは組織を削除できません。
その 1. AWS CLI から組織を削除する方法
今回はメンバーアカウントが 1 つ所属している状態から、その AWS アカウントを除外し、その後組織を削除してみます。
なお、操作は管理アカウントを使用し、操作権限は ドキュメント にしたがい、付与してあります。
- 作業前に、組織の状態と組織に属している AWS アカウントを確認しておきます。
$ aws organizations describe-organization { "Organization": { "Id": "{組織 ID}", "Arn": "arn:aws:organizations::{AWS アカウント ID}:organization/{組織 ID}", "FeatureSet": "ALL", "MasterAccountArn": "arn:aws:organizations::{AWS アカウント ID}:account/{組織 ID}/{AWS アカウント ID}", "MasterAccountId": "{管理アカウントの AWS アカウント ID}", "MasterAccountEmail": "{管理アカウントに紐づくメールアドレス}", "AvailablePolicyTypes": [ { "Type": "SERVICE_CONTROL_POLICY", "Status": "ENABLED" } ] } } $ aws organizations list-accounts | jq '.Accounts[].Id' "{AWS アカウント ID_A}" "{AWS アカウント ID_B}"
- メンバーアカウント(
describe-organization
のMasterAccountId
以外の AWS アカウント)を除外します。$ aws organizations remove-account-from-organization --account-id <メンバーアカウントの AWS アカウント ID> $ aws organizations list-accounts | jq '.Accounts[].Id' "{AWS アカウント ID_A}"
- メンバーアカウントが組織から除外され、管理アカウントのみとなりました。準備が整いましたので、組織を削除します。
$ aws organizations delete-organization $ aws organizations describe-organization An error occurred (AWSOrganizationsNotInUseException) when calling the DescribeOrganization operation: Your account is not a member of an organization.
組織の削除後に
describe-organization
を実行するとエラーが発生します。想定通りの結果ですね。
その 2. マネジメントコンソールから組織を削除する方法
- マネジメントコンソールの Organizations へ移動します。
- サイドバーの「設定」->「組織を削除する」を選択します。
- 組織 ID を入力し「組織を削除する」を選択します。
組織の削除時に CloudTrail から発行されたイベント内容
あまり見る機会もないので、組織を削除した時のイベントを CloudTrail からみてみます。
ドキュメント 通り、DeleteOrganization
が発行されていることを確認できました。
※イベントを確認する際の注意点として、組織の削除をしたリージョンではなく「バージニア北部」リージョンの指定が必要です。
{ "eventVersion": "1.08", "userIdentity": { 〜 }, "eventTime": "2023-09-12T12:45:05Z", "eventSource": "organizations.amazonaws.com", "eventName": "DeleteOrganization", "awsRegion": "us-east-1", "sourceIPAddress": "xx.xx.xx.xxx", "userAgent": "aws-cli/2.13.16 Python/3.11.5 Darwin/22.6.0 source/arm64 prompt/off command/organizations.delete-organization", "requestParameters": null, "responseElements": null, "requestID": "xxxxx", "eventID": "xxxxx", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "organizations.us-east-1.amazonaws.com" } }
まとめ
今回は、Organizations の組織を削除してみました。操作自体は、AWS CLI やマネジメントコンソールの難しい設定・操作は必要なく、簡易に実施できました。
しかし、Organizations の機能でメンバーアカウントを作成していた場合、請求情報などの登録が済んでおらず、組織から除外する方が手間でした。(連絡先の登録がうまくいかず、こちらの方に時間を取られました…)
参考資料
公式ドキュメント
AWS CLI リファレンス
- describe-organization - AWS CLI 2.13.11 Command Reference
- list-accounts — AWS CLI 2.13.17 Command Reference
- remove-account-from-organization - AWS CLI 2.13.11 Command Reference
- delete-organization — AWS CLI 2.13.17 Command Reference
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、さまざまな背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。