[アップデート] セキュリティグループが関連づけられているリソースを簡単に一覧表示できるようになりました
セキュリティグループの棚卸しが大変
こんにちは、のんピ(@non____97)です。
皆さんはセキュリティグループの棚卸しが大変だなと思ったことはありますか? 私はあります。
大量のセキュリティグループがあると混乱してしまいます。そのために現在しようとしているものを棚卸ししたくなる時があります。
この時、単純にENIに割り当てられているセキュリティグループを探すだけではなく、DBインスタンスは0だがDBクラスターには関連付けられているものなども探す必要があります。要するに手間です。
今回、アップデートによりセキュリティグループの関連リソースが表示されるようになりました。
これにより棚卸しが非常に楽になりそうです。
実際に試して見ました。
いきなりまとめ
- 調査対象のリソースタイプを調査して、対象セキュリティグループが関連付けられているリソースを一覧してくれる機能が追加された
- 専用APIはない
- 愚直に各リソースタイプのAPIが裏側で叩かれる
- 専用APIはない
- 調査対象のリソースタイプは2026/2/6時点で69種類
- 以下は検出されないので注意しよう
- ECSのScheduled Taskの設定に関連付けたもの
- ECSのサービスに関連付けたもの
- Step FunctionsのStep Functions内で起動するオンデマンドタスクの設定に関連付けたもの
- セキュリティグループのインバウンド/アウトバウンドルールで参照されているもの
やってみた
関連リソースの確認
確認の方法は簡単です。セキュリティグループを選択して、関連リソースタブを開くだけです。

いっぱい出てきましたね。
それぞれにサービスとリソースタイプも記載されているので分かりやすいです。
また、CapacityProvidersで表示されているキャパシティプロバイダーについて、現在コンテナインスタンスは起動していません。つまりは現在生えているENIだけ見て判断しているのではなく、各リソースの設定を見て判断してくれています。コンテナインスタンスが0の場合も検出してくれるので、ENIのみを見て判断する場合と比べて、事故しにくいと言えます。これは嬉しいですね。
気になる点としては、GAされて間もないからか関連付けていないリソースが検出されてしまうところでしょうか。
以下例ではAurora DBクラスターのdatabase-1にのみに割り当てているのですが、Document DBやNeptuneのdatabase-1に割り当てられているように見えてしまっています。そもそもDocument DBやNeptuneにdatabase-1というリソースは作成していません。

調査対象のリソース
この機能が調査してくれるリソースは調査対象リソースタブから確認できます。

現時点では69リソースタイプでした。これはこのアカウントやリージョン固有という訳ではなく、他アカウント、他リージョンでも69リソースタイプでした。
一覧は以下のとおりです。
| サービス | リソースタイプ | 応答 |
|---|---|---|
| AppRunner | VpcConnectors | 成功 |
| AppStream | AppBlockBuilders | 成功 |
| AppStream | Fleets | 成功 |
| AppStream | ImageBuilders | 成功 |
| AutoScaling | LaunchConfigurations | 成功 |
| Batch | ComputeEnvironments | 成功 |
| Bedrock | ModelInvocationJobs | 成功 |
| CloudHsmV2 | Clusters | 成功 |
| CodeConnections | Hosts | 成功 |
| CodeStarConnections | Hosts | 成功 |
| Comprehend | DocumentClassificationJobs | 成功 |
| Comprehend | DocumentClassifiers | 成功 |
| Comprehend | DominantLanguageDetectionJobs | 成功 |
| Comprehend | EntitiesDetectionJobs | 成功 |
| Comprehend | EntityRecognizers | 成功 |
| Comprehend | KeyPhrasesDetectionJobs | 成功 |
| Comprehend | SentimentDetectionJobs | 成功 |
| Comprehend | TargetedSentimentDetectionJobs | 成功 |
| Comprehend | TopicsDetectionJobs | 成功 |
| DatabaseMigration | ReplicationConfigs | 成功 |
| DatabaseMigration | InstanceProfiles | 成功 |
| DatabaseMigration | ReplicationInstances | 成功 |
| DAX | Clusters | 成功 |
| Directory | Directories | 成功 |
| DocDB | DBClusters | 成功 |
| DocDB | DBInstances | 成功 |
| Drs | ReplicationConfigurationTemplates | UninitializedAccountException |
| EC2 | ClassicLinkInstances | 成功 |
| EC2 | ClientVpnEndpoints | 成功 |
| EC2 | InstanceConnectEndpoints | 成功 |
| EC2 | Instances | 成功 |
| EC2 | NetworkInterfaces | 成功 |
| EC2 | SpotFleetRequests | 成功 |
| EC2 | SpotInstanceRequests | 成功 |
| EC2 | SecurityGroupVpcAssociations | 成功 |
| EC2 | VerifiedAccessEndpoints | 成功 |
| EC2 | VpcEndpoints | 成功 |
| ECS | CapacityProviders | 成功 |
| ElastiCache | CacheClusters | 成功 |
| ElastiCache | ServerlessCaches | 成功 |
| ElasticLoadBalancing | LoadBalancers | 成功 |
| ElasticLoadBalancingV2 | LoadBalancers | 成功 |
| Kafka | Clusters | 成功 |
| KafkaConnect | Connectors | 成功 |
| Lambda | Functions | 成功 |
| LicenseManagerUserSubscriptions | IdentityProviderSummarys | 成功 |
| MediaLive | Inputs | 成功 |
| MediaLive | Channels | 成功 |
| MemoryDB | Clusters | 成功 |
| Mgn | ReplicationConfigurationTemplates | UninitializedAccountException |
| Neptune | DBClusters | 成功 |
| Neptune | DBInstances | 成功 |
| OSIS | PipelineEndpoints | 成功 |
| PcaConnectorAd | ConnectorResources | 成功 |
| RDS | Clusters | 成功 |
| RDS | DBInstances | 成功 |
| RDS | DBProxies | 成功 |
| RDS | DBProxyEndpoints | 成功 |
| RDS | DBSecurityGroups | 成功 |
| RDS | OptionGroups | 成功 |
| Redshift | Clusters | 成功 |
| Redshift | EndpointAccesses | 成功 |
| RedshiftServerless | EndpointAccesses | 成功 |
| Route53Resolver | ResolverEndpoints | 成功 |
| S3Outposts | Endpoints | 成功 |
| SageMaker | Workforces | 成功 |
| Synthetics | Canaries | 成功 |
| VPCLattice | ResourceGateways | 成功 |
| WorkSpaces | WorkspaceDirectories | 成功 |
逆に以下のようなものは検出してくれないので注意しましょう。
- ECSのScheduled Taskの設定に関連付けたもの
- ECSのサービスに関連付けたもの
- Step FunctionsのStep Functions内で起動するオンデマンドタスクの設定に関連付けたもの
- セキュリティグループのインバウンド/アウトバウンドルールで参照されているもの
ECSタスクについてはタスクが起動しているのであれば、NetworkInterfacesで検出してくれるでしょう。
CloudTrailの確認
関連リソースをリストアップするときにどのようなAPIが実行されているのか確認するために、CloudTrailを見てみました。

どうやら専用のAPIがあるのではなく、愚直に調査対象リソースのセキュリティグループを確認するAPIを叩いているようです。ということでAWS CLIやAWS SDKなどではこちらの機能は使用できません。
CloudTrailのイベントは以下のとおりです。
{
"eventVersion": "1.11",
"userIdentity": {
"type": "AssumedRole",
"principalId": "<プリンシパルID>",
"arn": "arn:aws:sts::<AWSアカウントID>:assumed-role/<IAMロール名>/<セッション名>",
"accountId": "<AWSアカウントID>",
"accessKeyId": "<アクセスキー>",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "<プリンシパルID>",
"arn": "arn:aws:iam::<AWSアカウントID>:role/<IAMロール名>",
"accountId": "<AWSアカウントID>",
"userName": "<IAMユーザー名>"
},
"attributes": {
"creationDate": "2026-02-05T09:10:36Z",
"mfaAuthenticated": "true"
}
}
},
"eventTime": "2026-02-05T09:13:25Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "DescribeInstances",
"awsRegion": "ap-northeast-1",
"sourceIPAddress": "<送信元IPアドレス>",
"userAgent": "AWS Internal",
"requestParameters": {
"instancesSet": {},
"filterSet": {
"items": [
{
"name": "instance.group-id",
"valueSet": {
"items": [
{
"value": "sg-ea3b8caa"
}
]
}
}
]
}
},
"responseElements": null,
"requestID": "d42ec33b-a564-4225-84ad-462d8e2efe3e",
"eventID": "796c919d-f04b-4ec6-8145-b23b834045ae",
"readOnly": true,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "<AWSアカウントID>",
"eventCategory": "Management",
"sessionCredentialFromConsole": "true"
}
{
"eventVersion": "1.11",
"userIdentity": {
"type": "AssumedRole",
"principalId": "<プリンシパルID>",
"arn": "arn:aws:sts::<AWSアカウントID>:assumed-role/<IAMロール名>/<セッション名>",
"accountId": "<AWSアカウントID>",
"accessKeyId": "<アクセスキー>",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "<プリンシパルID>",
"arn": "arn:aws:iam::<AWSアカウントID>:role/<IAMロール名>",
"accountId": "<AWSアカウントID>",
"userName": "<IAMユーザー名>"
},
"attributes": {
"creationDate": "2026-02-05T09:10:36Z",
"mfaAuthenticated": "true"
}
}
},
"eventTime": "2026-02-05T09:18:26Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "DescribeSecurityGroups",
"awsRegion": "ap-northeast-1",
"sourceIPAddress": "<送信元IPアドレス>",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
"requestParameters": {
"securityGroupSet": {},
"securityGroupIdSet": {
"items": [
{
"groupId": "sg-09984908baf0ea8cd"
}
]
},
"filterSet": {}
},
"responseElements": null,
"requestID": "aed4e870-a0d3-42b1-bd69-1446d10a7401",
"eventID": "4804787d-a8bf-4d57-b2eb-9df32d138743",
"readOnly": true,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "<AWSアカウントID>",
"eventCategory": "Management",
"tlsDetails": {
"tlsVersion": "TLSv1.3",
"cipherSuite": "TLS_AES_128_GCM_SHA256",
"clientProvidedHostHeader": "ec2.ap-northeast-1.amazonaws.com"
},
"sessionCredentialFromConsole": "true"
}
userIdentityはマネジメントコンソールで操作しているものでした。サービスリンクロールではないので、自身の権限が確認できる範囲でしか確認できないということは意識しておくと良いでしょう。
棚卸しのお供に
セキュリティグループが関連づけられているリソースを簡単に一覧表示できるようになったアップデートを紹介しました。
棚卸しのお供に使いたいですね。個人的にはセキュリティグループのインバウンド/アウトバウンドルールで参照されているものも検出してくれると非常に嬉しいです。
この記事が誰かの助けになれば幸いです。
以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!







