
AWS DevOps Agent スペースに AWS CLI でセカンダリソースのアカウントを追加・削除する
AWS DevOps Agent は他の AWS アカウントをセカンダリソースとして追加することで調査の対象を広げることができます。以前に、AWS CloudFormation StackSets と AWS CLI を使って、AWS Organizations 配下のアカウントをセカンダリソースとして一括で追加する方法を紹介しましたが(下記ブログ)、今回は新規アカウント発行時やアカウント廃止時にセカンダリソースとして追加・削除する運用をするために AWS CLI コマンドで設定してみました。
なお、本ブログでは、前提としてセカンダリソースの追加に必要な IAM ロールは StackSets の自動デプロイ機能により作成する環境を想定しています。
新規アカウント発行時のセカンダリソースへの追加
AWS DevOps Agent スペースが存在するアカウントにおいて、devops-agent associate-service コマンドを実行してセカンダリソースを追加します。新規発行アカウント ID を SECONDARY_ACCOUNT_ID に格納し、StackSets で展開している IAM ロール名を SECONDARY_ROLE_NAME に格納します。
AGENT_SPACE_ID="f2050f98-39ce-471f-96d4-cdc8eEXAMPLE"
AGENT_SPACE_REGION="ap-northeast-1"
SECONDARY_ACCOUNT_ID="111122223333"
SECONDARY_ROLE_NAME="aws-devops-agent-role"
aws devops-agent associate-service \
--agent-space-id "${AGENT_SPACE_ID}" \
--service-id aws \
--configuration "{
\"sourceAws\": {
\"accountId\": \"${SECONDARY_ACCOUNT_ID}\",
\"accountType\": \"source\",
\"assumableRoleArn\": \"arn:aws:iam::${SECONDARY_ACCOUNT_ID}:role/${SECONDARY_ROLE_NAME}\"
}
}" \
--region "${AGENT_SPACE_REGION}"
実行結果例です。
{
"association": {
"agentSpaceId": "f2050f98-39ce-471f-96d4-cdc8eEXAMPLE",
"createdAt": "2026-07-30T11:29:00.290000+00:00",
"updatedAt": "2026-07-30T11:29:00.290000+00:00",
"status": "valid",
"associationId": "3ea658cb-d2af-40f5-bd6a-4af898cf366e",
"serviceId": "aws",
"configuration": {
"sourceAws": {
"accountId": "111122223333",
"accountType": "source",
"assumableRoleArn": "arn:aws:iam::111122223333:role/aws-devops-agent-role"
}
}
}
}
セカンダリソースが追加されたか確認するコマンドは下記です。セカンダリソースの一覧を取得して、先ほど追加したアカウントが存在するか確認しています。環境変数はセカンダリソースの追加と同様の値でよいので、続けて実行する場合は devops-agent list-associations コマンドだけでも問題ありません。
AGENT_SPACE_ID="f2050f98-39ce-471f-96d4-cdc8eEXAMPLE"
AGENT_SPACE_REGION="ap-northeast-1"
SECONDARY_ACCOUNT_ID="111122223333"
aws devops-agent list-associations \
--agent-space-id "${AGENT_SPACE_ID}" \
--region "${AGENT_SPACE_REGION}" \
--query "associations[?configuration.sourceAws.accountId=='${SECONDARY_ACCOUNT_ID}']"
正常にアカウントが追加されている場合の実行結果の出力例です。
[
{
"agentSpaceId": "f2050f98-39ce-471f-96d4-cdc8eEXAMPLE",
"createdAt": "2026-07-30T11:29:00.290000+00:00",
"updatedAt": "2026-07-30T11:29:00.290000+00:00",
"status": "valid",
"associationId": "3ea658cb-d2af-40f5-bd6a-4af898cf366e",
"serviceId": "aws",
"configuration": {
"sourceAws": {
"accountId": "111122223333",
"accountType": "source",
"assumableRoleArn": "arn:aws:iam::111122223333:role/aws-devops-agent-role"
}
}
}
]
もしアカウントが追加されていない場合は該当するデータがないので下記のような出力となります。
[]
アカウント廃止時のセカンダリソースからの削除
セカンダリソースを削除する場合は devops-agent disassociate-service コマンドを用いて実行します。本コマンドではアカウント ID ではなく、association-id を指定する必要があるため、ASSOCIATION_ID 変数にアカウント ID が一致するセカンダリソースのアソシエーション ID を格納してから実行しています。
AGENT_SPACE_ID="f2050f98-39ce-471f-96d4-cdc8eEXAMPLE"
AGENT_SPACE_REGION="ap-northeast-1"
SECONDARY_ACCOUNT_ID="111122223333"
ASSOCIATION_ID=$(aws devops-agent list-associations \
--agent-space-id "${AGENT_SPACE_ID}" \
--region "${AGENT_SPACE_REGION}" \
--query "associations[?configuration.sourceAws.accountId=='${SECONDARY_ACCOUNT_ID}'].associationId" \
--output text)
aws devops-agent disassociate-service \
--agent-space-id "${AGENT_SPACE_ID}" \
--association-id "${ASSOCIATION_ID}" \
--region "${AGENT_SPACE_REGION}"
エラーがなければ正常に動作していると思われます。
アカウント追加時と同様に、アカウントの削除を確認するコマンドは下記です。
AGENT_SPACE_ID="f2050f98-39ce-471f-96d4-cdc8eEXAMPLE"
AGENT_SPACE_REGION="ap-northeast-1"
SECONDARY_ACCOUNT_ID="111122223333"
aws devops-agent list-associations \
--agent-space-id "${AGENT_SPACE_ID}" \
--region "${AGENT_SPACE_REGION}" \
--query "associations[?configuration.sourceAws.accountId=='${SECONDARY_ACCOUNT_ID}']"
実行結果例です。何も格納されていなければアカウント ID が一致するアソシエーションはなく、削除できていることが確認できます。
[]
さいごに
AWS DevOps Agent スペースに対して、AWS アカウントをセカンダリソースとして追加・削除する AWS CLI コマンドを紹介しました。新規アカウント発行時にセカンダリソースに追加し、アカウント廃止時にセカンダリソースから削除するという運用を、コマンドとして手順化する機会があったため確認しました。
以上、このブログがどなたかのご参考になれば幸いです。








