AWS Organizations の組織を削除する方法

2023.09.13

はじめに

AWS Organizations(以下、Organizations)では、OU やメンバーアカウントを柔軟に変更(移動や除外、削除)可能です。そのため、Organizations の組織そのものを削除する機会はあまりないと思います。
しかし、今回のっぴきならない理由につきその機会がありましたので、方法を記事にしてみました。

組織の削除方法

AWS における一般的な操作と同様に、AWS CLI から削除する方法とマネジメントコンソールから削除する方法の 2 通りがあります。今回は、いずれの方法についても確認します。

注意点

最初に注意点をまとめます。

  1. 一度削除した組織や削除後に組織内で作成した SCP は復元できません。
  2. 組織の削除を行う前に、メンバーアカウントを 削除除外 する必要があります。
    • 組織の削除は、管理アカウントのみの状態で行う必要があります。メンバーアカウントが組織内に残っている場合、組織は削除できません。
    • メンバーアカウントが組織内に残ったまま組織を削除しようとすると、次の様なエラーが発生します To delete an organization you must first remove all member accounts (except the master).
    • メンバーアカウントを除外する場合、スタンドアロン AWS アカウントとしての条件(請求情報や電話番号の登録等)を満たしておく必要があります。
  3. 組織の削除前に属していたメンバーアカウントを閉鎖していた場合、AWS アカウントが削除される(最大 90 日)までは組織を削除できません。

その 1. AWS CLI から組織を削除する方法

今回はメンバーアカウントが 1 つ所属している状態から、その AWS アカウントを除外し、その後組織を削除してみます。
なお、操作は管理アカウントを使用し、操作権限は ドキュメント にしたがい、付与してあります。

  1. 作業前に、組織の状態と組織に属している 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}"
  2. メンバーアカウント(describe-organizationMasterAccountId以外の AWS アカウント)を除外します。
    $ aws organizations remove-account-from-organization --account-id <メンバーアカウントの AWS アカウント ID>
    
    $ aws organizations list-accounts | jq '.Accounts[].Id'
    "{AWS アカウント ID_A}"
  3. メンバーアカウントが組織から除外され、管理アカウントのみとなりました。準備が整いましたので、組織を削除します。
    $ 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. マネジメントコンソールから組織を削除する方法

  1. マネジメントコンソールの Organizations へ移動します。
  2. サイドバーの「設定」->「組織を削除する」を選択します。
  3. 組織 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 リファレンス

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、さまざまな背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。