ハンズオン(簡易版): Organizations基礎(アカウント招待)

6.2. Organizations組織への招待のキャンセル (CloudShell)

手順の目的

Organizations組織への招待をキャンセルします。

設定値の指定

手順に必要な設定値を変数に格納をします。

1. 招待するAWSアカウントの識別子タイプ

招待するAWSアカウントの識別子のタイプを指定します。

変数の設定:

ORGANIZATIONS_HANDSHAKE_ACCOUNT_TYPE='ACCOUNT'

2. 招待するAWSアカウントの識別子

招待するAWSアカウントの識別子を指定します。

変数の設定:

DIR_TMP_ORGANIZATIONS_ACCOUNT_ID="${HOME}/tmp-handson-cli-organizations"

変数の設定:

FILE_TMP_ORGANIZATIONS_ACCOUNT_ID="${DIR_TMP_ORGANIZATIONS_ACCOUNT_ID}/handson-cli-organizations-organizations-account-id-child.txt" \
  && echo ${FILE_TMP_ORGANIZATIONS_ACCOUNT_ID}

結果(例):

${HOME}/tmp-handson-cli-organizations/handson-cli-organizations-organizations-account-id-child.txt

コマンド:

source ${FILE_TMP_ORGANIZATIONS_ACCOUNT_ID}

変数の設定:

ORGANIZATIONS_HANDSHAKE_ACCOUNT_ID="${ORGANIZATIONS_ACCOUNT_ID_CHILD}" \
  && echo ${ORGANIZATIONS_HANDSHAKE_ACCOUNT_ID}

結果(例):

XXXXXXXXXXXX

設定値の確認

各変数に正しい設定値が格納されていることを確認します。

変数の確認:

cat << END

  # 1. ORGANIZATIONS_HANDSHAKE_ACCOUNT_TYPE:"ACCOUNT"
       ORGANIZATIONS_HANDSHAKE_ACCOUNT_TYPE="${ORGANIZATIONS_HANDSHAKE_ACCOUNT_TYPE}"
  # 2. ORGANIZATIONS_HANDSHAKE_ACCOUNT_ID:"<招待するAWSアカウントの識別子>"
       ORGANIZATIONS_HANDSHAKE_ACCOUNT_ID="${ORGANIZATIONS_HANDSHAKE_ACCOUNT_ID}"

END

各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

Organizations組織への招待のハンドシェイクIDを取得します。

コマンド:

ORGANIZATIONS_HANDSHAKE_ID=$( \
  aws organizations list-handshakes-for-organization \
    --query "Handshakes[?
      State == \`OPEN\`
        && contains(Resources[].Value, \`${ORGANIZATIONS_HANDSHAKE_ACCOUNT_ID}\`)
      ].Id" \
    --output text
) \
  && echo ${ORGANIZATIONS_HANDSHAKE_ID}

結果(例):

h-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Organizations組織への招待をキャンセルします。

変数の確認:

cat << END

  # ORGANIZATIONS_HANDSHAKE_ID:"h-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    ORGANIZATIONS_HANDSHAKE_ID="${ORGANIZATIONS_HANDSHAKE_ID}"

END

コマンド:

aws organizations cancel-handshake \
  --handshake-id ${ORGANIZATIONS_HANDSHAKE_ID}

結果(例):

{
    "Handshake": {
        "Id": "h-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "Arn": "arn:aws:organizations::XXXXXXXXXXXX:handshake/o-xxxxxxxxxx/invite/h-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "Parties": [
            {
                "Id": "xxxxxxxxxx",
                "Type": "ORGANIZATION"
            },
            {
                "Id": "<招待するAWSアカウントの識別子>",
                "Type": "ACCOUNT"
            }
        ],
        "State": "CANCELED",
        "RequestedTimestamp": "2023-11-30T01:23:45.678000+00:00",
        "ExpirationTimestamp": "2023-11-30T01:23:45.678000+00:00",
        "Action": "INVITE",
        "Resources": [
            {
                "Value": "o-xxxxxxxxxx",
                "Type": "ORGANIZATION",
                "Resources": [
                    {
                        "Value": "<マスターアカウントの登録メールアドレス>",
                        "Type": "MASTER_EMAIL"
                    },
                    {
                        "Value": "<マスターアカウントの登録名>",
                        "Type": "MASTER_NAME"
                    },
                    {
                        "Value": "ALL",
                        "Type": "ORGANIZATION_FEATURE_SET"
                    }
                ]
            },
            {
                "Value": "<招待するAWSアカウントの識別子>",
                "Type": "ACCOUNT"
            }
        ]
    }
}

完了確認

「AWSアカウントタイプ"ACCOUNT"、アカウント識別子"<招待するAWSアカウントの識別子>"に対するOrganizations組織への招待が"CANCELD"になっている。」ことを確認します。

コマンド:

aws organizations list-handshakes-for-organization \
  --query "Handshakes[?Id == \`${ORGANIZATIONS_HANDSHAKE_ID}\`].State" \
  --output text

結果(例):

CANCELED

手順の完了

(参考) マネジメントコンソールの確認

  • 左ペインの"AWSアカウント"をクリックします。

AWSアカウント(画面)

  • 組織が存在することを確認します。

課題

動作確認