Amazon Inspector 非アクティブ化の実行時、AWS 側で自動作成されるリソースは全て削除されますか

Amazon Inspector 非アクティブ化の実行時、AWS 側で自動作成されるリソースは全て削除されますか

Clock Icon2024.08.19

困っていること

Amazon Inspector を利用中でしたが、管理運用に関する社内協議の結果、非アクティブ化して停止する方針になりました。
Amazon Inspector 非アクティブ化の実行時、AWS 側で作成されたリソースは全て自動で削除されるか教えてください。

どう対応すればいいの?

いいえ、全て削除されません。
例えば、自動で作成される SSM 関連付け、パラメータストア、Amazon EventBridge ルールなどは自動で削除されますが、AWSServiceRoleForAmazonInspector2 といったサービスにリンクされたロールは削除されません。
そのため、手動で削除することをご検討ください。

https://docs.aws.amazon.com/ja_jp/inspector/latest/user/deactivating-best-practices.html

アカウントの Amazon Inspector を非アクティブ化すると、そのアカウントのすべてのスキャンタイプが非アクティブ化されます。さらに、フィルター、抑制ルール、検出結果を含むすべての Amazon Inspector スキャン設定がアカウントに対して削除されます。

https://docs.aws.amazon.com/ja_jp/inspector/latest/user/using-service-linked-roles.html

Amazon Inspector の使用が不要になった場合は、AWSServiceRoleForAmazonInspector2 サービスにリンクされたロールを削除することをお勧めします。ロールを削除する前に、ロール AWS リージョン がアクティブ化されている各 で Amazon Inspector を非アクティブ化する必要があります。Amazon Inspector を非アクティブ化しても、ロールは削除されません。

CloudTrail イベント履歴

EC2 インスタンスのみをスキャン対象としていた検証環境において、非アクティブ化を実施した際の CloudTrail イベント履歴を確認しました。
なお、今回の状況においては 米国東部(バージニア北部)リージョンにおいて関連するイベント履歴を確認できませんでした。

スクリーンショット 2024-08-19 113431

時系列(降順)

  1. DeleteAssociation
  2. DeleteParameter
  3. DeleteRule
  4. RemoveTargets
  5. RemoveTargets
  6. DeleteRule
  7. DeleteAssociation
  8. DeleteAssociation
  9. DeleteAssociation
  10. DeleteAssociation
  11. PutRegistryScanningConfiguration
  12. UpdateAssociation
  13. DeleteResourceDataSync
  14. RemoveTargets
  15. DeleteScansByCategory
  16. DeleteRule
  17. DeleteRule
  18. RemoveTargets
  19. RemoveTargets
  20. DeleteServiceLinkedChannel
  21. DeleteRule

補足

Amazon Inspector のアクティブ化時において、どの様なリソースが自動で作成されるかといった網羅的に紹介可能な情報はないものの、サービスにリンクされたロール AWSServiceRoleForAmazonInspector2 許可アクションよりAmazon Inspector の動作に関係する対象サービスを確認可能です。

無題

AWSServiceRoleForAmazonInspector2
{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "directconnect:DescribeConnections",
              "directconnect:DescribeDirectConnectGatewayAssociations",
              "directconnect:DescribeDirectConnectGatewayAttachments",
              "directconnect:DescribeDirectConnectGateways",
              "directconnect:DescribeVirtualGateways",
              "directconnect:DescribeVirtualInterfaces",
              "directconnect:DescribeTags",
              "ec2:DescribeTags",
              "ec2:DescribeAvailabilityZones",
              "ec2:DescribeCustomerGateways",
              "ec2:DescribeInstances",
              "ec2:DescribeInternetGateways",
              "ec2:DescribeManagedPrefixLists",
              "ec2:DescribeNatGateways",
              "ec2:DescribeNetworkAcls",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DescribePrefixLists",
              "ec2:DescribeRegions",
              "ec2:DescribeRouteTables",
              "ec2:DescribeSecurityGroups",
              "ec2:DescribeSubnets",
              "ec2:DescribeTransitGatewayAttachments",
              "ec2:DescribeTransitGatewayConnects",
              "ec2:DescribeTransitGatewayPeeringAttachments",
              "ec2:DescribeTransitGatewayRouteTables",
              "ec2:DescribeTransitGatewayVpcAttachments",
              "ec2:DescribeTransitGateways",
              "ec2:DescribeVpcEndpointServiceConfigurations",
              "ec2:DescribeVpcEndpoints",
              "ec2:DescribeVpcPeeringConnections",
              "ec2:DescribeVpcs",
              "ec2:DescribeVpnConnections",
              "ec2:DescribeVpnGateways",
              "ec2:GetManagedPrefixListEntries",
              "ec2:GetTransitGatewayRouteTablePropagations",
              "ec2:SearchTransitGatewayRoutes",
              "elasticloadbalancing:DescribeListeners",
              "elasticloadbalancing:DescribeLoadBalancerAttributes",
              "elasticloadbalancing:DescribeLoadBalancers",
              "elasticloadbalancing:DescribeRules",
              "elasticloadbalancing:DescribeTags",
              "elasticloadbalancing:DescribeTargetGroups",
              "elasticloadbalancing:DescribeTargetHealth",
              "network-firewall:DescribeFirewall",
              "network-firewall:DescribeFirewallPolicy",
              "network-firewall:DescribeResourcePolicy",
              "network-firewall:DescribeRuleGroup",
              "network-firewall:ListFirewallPolicies",
              "network-firewall:ListFirewalls",
              "network-firewall:ListRuleGroups",
              "tiros:CreateQuery",
              "tiros:GetQueryAnswer"
          ],
          "Resource": [
              "*"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "codeguru-security:CreateScan",
              "codeguru-security:GetScan",
              "codeguru-security:ListFindings",
              "codeguru-security:BatchGetFindings",
              "codeguru-security:DeleteScansByCategory",
              "iam:GetRole",
              "iam:GetRolePolicy",
              "iam:GetPolicy",
              "iam:GetPolicyVersion",
              "iam:ListAttachedRolePolicies",
              "iam:ListPolicies",
              "iam:ListPolicyVersions",
              "lambda:ListVersionsByFunction"
          ],
          "Resource": [
              "*"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "ecr:BatchGetImage",
              "ecr:BatchGetRepositoryScanningConfiguration",
              "ecr:DescribeImages",
              "ecr:DescribeRegistry",
              "ecr:DescribeRepositories",
              "ecr:GetAuthorizationToken",
              "ecr:GetDownloadUrlForLayer",
              "ecr:GetRegistryScanningConfiguration",
              "ecr:ListImages",
              "ecr:PutRegistryScanningConfiguration",
              "organizations:DescribeAccount",
              "organizations:DescribeOrganization",
              "organizations:ListAccounts",
              "ssm:DescribeAssociation",
              "ssm:DescribeAssociationExecutions",
              "ssm:DescribeInstanceInformation",
              "ssm:ListAssociations",
              "ssm:ListResourceDataSync"
          ],
          "Resource": "*"
      },
      {
          "Effect": "Allow",
          "Action": [
              "lambda:ListFunctions",
              "lambda:GetFunction",
              "lambda:GetLayerVersion",
              "cloudwatch:GetMetricData"
          ],
          "Resource": "*"
      },
      {
          "Effect": "Allow",
          "Action": [
              "ssm:CreateAssociation",
              "ssm:StartAssociationsOnce",
              "ssm:DeleteAssociation",
              "ssm:UpdateAssociation"
          ],
          "Resource": [
              "arn:*:ec2:*:*:instance/*",
              "arn:*:ssm:*:*:document/AmazonInspector2-*",
              "arn:*:ssm:*:*:document/AWS-GatherSoftwareInventory",
              "arn:*:ssm:*:*:managed-instance/*",
              "arn:*:ssm:*:*:association/*"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "ssm:CreateResourceDataSync",
              "ssm:DeleteResourceDataSync"
          ],
          "Resource": [
              "arn:*:ssm:*:*:resource-data-sync/InspectorResourceDataSync-do-not-delete"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "events:PutRule",
              "events:DeleteRule",
              "events:DescribeRule",
              "events:ListTargetsByRule",
              "events:PutTargets",
              "events:RemoveTargets"
          ],
          "Resource": [
              "arn:*:events:*:*:rule/DO-NOT-DELETE-AmazonInspector*ManagedRule"
          ]
      }
  ]
}

サービスにリンクされたロール AWSServiceRoleForAmazonInspector2 で記載されているサービス一覧。

  • CloudTrail
  • CloudWatch
  • CodeGuru Security
  • Direct Connect
  • EC2
  • Elastic Container Registry
  • ELB
  • EventBridge
  • Lambda
  • Network Firewall
  • Organizations
  • Systems Manager
  • Tiros

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.