アカウント内スキャンの設定

アカウント内スキャンを設定するには、専用アカウントを作成して接続してから、ターゲットアカウントでリージョンごとにプロビジョニングされるリソースためのアクセス許可を Tenable One Cloud Exposure に付与します。

アカウント内スキャンを設定する方法

  1. スキャン用に 1 つ以上の専用アカウントを作成します。

    注意:

    • クラウドサイバーエクスポージャー でアカウント階層とフォルダーごとに定義できるスキャンアカウントは 1 つのみです。スキャンアカウントは、1 つの範囲にのみマッピングできます。
    • 当該アカウントに関連するコンピューティングコスト (1 リージョンあたり推定約 300 ドル) は、お客様の負担となります。詳細については、リージョンごとにプロビジョニングされるリソースを参照してください。
  2. クラウドサイバーエクスポージャー のアカウントを接続します。
  3. クラウドプロバイダーに応じて、以下をアカウントに追加して、コンピューティングリソースを管理するために必要なアクセス許可を Tenable に付与します。
  4. プロセスを完了するうえでご不明な点がある場合は、サポートにお問い合わせください。この時点で、以下が実行されます。
    • Tenable は、仮想マシンがある各リージョンに必要なコンピューティングリソースをプロビジョニングします。詳細については、リージョンごとにプロビジョニングされるリソースを参照してください。
    • Tenable は、定期的にスキャンをオーケストレーションします。

必要な AWS アクセス許可

必要な AWS アクセス許可は、AWS 管理ポリシーとカスタムインラインポリシーで構成されます。

  • 次の AWS 管理ポリシーをアタッチします。AmazonVPCFullAccess。
  • 以下のカスタムのインラインポリシーを、統合時に作成した IAM ロールに追加します。

これらのアクセス許可は、お客様の環境でワークロードをデプロイ、管理、スキャンするために必要です。これには、コンピューティングリソースのプロビジョニングと変更 (EC2、Auto Scaling、EKS)、認証とアクセス制御のための IAM ロールとポリシーの管理、安全なデータアクセスのための暗号化キーの処理 (KMS)、リソースの効率的な編成 (リソースグループ) が含まれます。これらのアクセス許可により、セキュリティとコンプライアンスを維持しながら、ワークロードスキャンに必要なインフラを確保できます。

コピー

JSON

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "autoscaling:UpdateAutoScalingGroup"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:DetachVolume"
              ],
            "Resource": "*",
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateVolume",
            "Resource": "arn:aws:ec2:*:*:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Context": "WorkloadAnalysis"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateVolume",
            "Resource": "arn:aws:ec2:*:*:snapshot/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteVolume",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Context": "WorkloadAnalysis"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateLaunchTemplate",
                "ec2:CreateLaunchTemplateVersion",
                "ec2:DeleteLaunchTemplate",
                "ec2:ModifyLaunchTemplate",
                "ec2:RunInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "eks:AssociateEncryptionConfig",
                "eks:CreateAddon",
                "eks:CreateCluster",
                "eks:CreateNodegroup",
                "eks:CreatePodIdentityAssociation",
                "eks:DeleteCluster",
                "eks:DeleteNodegroup",
                "eks:TagResource",
                "eks:UpdateAddon",
                "eks:UpdateClusterVersion",
                "eks:UpdateNodegroupConfig",
                "eks:UpdateNodegroupVersion"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateRole",
                "iam:CreateServiceLinkedRole",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:List*Tags",
                "iam:PassRole",
                "iam:PutRolePolicy",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:Tag*",
                "iam:UpdateAssumeRolePolicy"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:CreateAlias",
                "kms:CreateGrant",
                "kms:CreateKey",
                "kms:Decrypt",
                "kms:DeleteAlias",
                "kms:DescribeKey",
                "kms:EnableKeyRotation",
                "kms:GenerateDataKeyWithoutPlaintext",
                "kms:ListAliases",
                "kms:ListKeys",
                "kms:ListResourceTags",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:ScheduleKeyDeletion",
                "kms:TagResource"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "license-manager:ListReceivedLicenses",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:AddTagsToResource",
                "rds:CreateDBSubnetGroup",
                "rds:DeleteDBSubnetGroup"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "resource-groups:CreateGroup",
                "resource-groups:DeleteGroup",
                "resource-groups:Get*",
                "resource-groups:Tag"
            ],
            "Resource": "*"
        }
    ]
}

必要な Azure アクセス許可

専用のアカウント内サブスクリプションで、クラウドサイバーエクスポージャー コネクタアプリに次のカスタムロールを割り当てます。このロールにより、Tenable で以下が可能になります。

  • ディスクの作成や削除を含む、マネージドディスクのモニタリング
  • Kubernetes クラスタがディスクをスキャンジョブにアタッチできるようにするロール定義 (TenableRoleDefinitionWorkloadAnalysisScanning) の作成
コピー

JSON

{
    "properties": {
        "assignableScopes": [
            "/subscriptions/<SubscriptionId>"
        ],
        "description": "",
        "permissions": [
            {
                "actions": [
                    "Microsoft.Authorization/roleAssignments/delete",
                    "Microsoft.Authorization/roleAssignments/write",
                    "Microsoft.Authorization/roleDefinitions/delete",
                    "Microsoft.Authorization/roleDefinitions/write",
                    "Microsoft.Compute/disks/delete",
                    "Microsoft.Compute/disks/write",
                    "Microsoft.Compute/register/action",
                    "Microsoft.Compute/skus/read",
                    "Microsoft.Compute/virtualMachines/attachDetachDataDisks/action",
                    "Microsoft.Compute/virtualMachines/write",
                    "Microsoft.Compute/virtualMachineScaleSets/virtualMachines/restart/action",
                    "Microsoft.Compute/virtualMachineScaleSets/write",
                    "Microsoft.ContainerService/managedClusters/agentPools/abort/action",
                    "Microsoft.ContainerService/managedClusters/agentPools/deleteMachines/action",
                    "Microsoft.ContainerService/managedClusters/agentPools/machines/read",
                    "Microsoft.ContainerService/managedClusters/agentPools/machines/write",
                    "Microsoft.ContainerService/managedClusters/agentPools/read",
                    "Microsoft.ContainerService/managedClusters/agentPools/upgradeNodeImageVersion/action",
                    "Microsoft.ContainerService/managedClusters/agentPools/write",
                    "Microsoft.ContainerService/managedClusters/delete",
                    "Microsoft.ContainerService/managedClusters/listClusterUserCredential/action",
                    "Microsoft.ContainerService/managedClusters/write",
                    "Microsoft.ContainerService/register/action",
                    "Microsoft.Features/providers/features/register/action",
                    "Microsoft.KeyVault/*",
                    "Microsoft.ManagedIdentity/register/action",
                    "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action",
                    "Microsoft.ManagedIdentity/userAssignedIdentities/delete",
                    "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/delete",
                    "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write",
                    "Microsoft.ManagedIdentity/userAssignedIdentities/write",
                    "Microsoft.Network/natGateways/delete",
                    "Microsoft.Network/natGateways/write",
                    "Microsoft.Network/networkSecurityGroups/delete",
                    "Microsoft.Network/networkSecurityGroups/join/action",
                    "Microsoft.Network/networkSecurityGroups/securityRules/delete",
                    "Microsoft.Network/networkSecurityGroups/securityRules/write",
                    "Microsoft.Network/networkSecurityGroups/write",
                    "Microsoft.Network/publicIPAddresses/delete",
                    "Microsoft.Network/publicIPAddresses/write",
                    "Microsoft.Network/register/action",
                    "Microsoft.Network/routeTables/delete",
                    "Microsoft.Network/routeTables/join/action",
                    "Microsoft.Network/routeTables/write",
                    "Microsoft.Network/virtualNetworks/delete",
                    "Microsoft.Network/virtualNetworks/subnets/delete",
                    "Microsoft.Network/virtualNetworks/subnets/join/action",
                    "Microsoft.Network/virtualNetworks/subnets/write",
                    "Microsoft.Network/virtualNetworks/write",
                    "Microsoft.Resources/subscriptions/providers/read",
                    "Microsoft.Resources/subscriptions/resourceGroups/delete",
                    "Microsoft.Resources/subscriptions/resourceGroups/write",
                    "Microsoft.Resources/tags/write",
                    "Microsoft.Storage/register/action",
                    "Microsoft.Storage/storageAccounts/blobServices/containers/delete",
                    "Microsoft.Storage/storageAccounts/blobServices/containers/write",
                    "Microsoft.Storage/storageAccounts/delete",
                    "Microsoft.Storage/storageAccounts/listkeys/action",
                    "Microsoft.Storage/storageAccounts/managementPolicies/delete",
                    "Microsoft.Storage/storageAccounts/managementPolicies/write",
                    "Microsoft.Storage/storageAccounts/write"
                ],
                "dataActions": [
                    "Microsoft.ContainerService/managedClusters/*",
                    "Microsoft.KeyVault/vaults/keyrotationpolicies/*",
                    "Microsoft.KeyVault/vaults/keys/*",
                    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete",
                    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read",
                    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write"
                ],
                "notActions": [],
                "notDataActions": []
            }
        ],
        "roleName": "InAccountCustomRole"
    }
}

必要な GCP アクセス許可

以下の事前定義されたロールを統合中に作成した クラウドサイバーエクスポージャー サービスアカウントに追加します。

GCP ロール 説明
Cloud KMS Admin 保存時に暗号化されたワークロードの復号化とスキャンに使用される暗号化キーを管理するために必要です。
Editor リソースの読み取りと変更を行うアクセス許可を付与し、さまざまな GCP サービスのワークロードをスキャンできるようにします。
Kubernetes Engine Admin Google Kubernetes Engine (GKE) クラスタで実行されているワークロードを検査し、セキュリティコンプライアンスを確保するために必要です。
Project IAM Admin IAM ポリシーを管理して、プロジェクト全体のワークロードにアクセスして検査するために必要なアクセス許可がスキャナーにあることを確認するために必要です。
Service Account Admin 認証とスキャン操作に必要なサービスアカウントの作成と管理を可能にします。

必要な OCI アクセス許可

統合時に作成した OCI ポリシーに以下のステートメントを追加することで、OCI アカウント内ワークロードをスキャンするアクセス許可を クラウドサイバーエクスポージャー に付与します。

  • グループTenableCSがコンパートメント内のすべてのリソースを管理できるようにします<InAccountコンパートメントOCID>
  • `グループ TenableCS が tenancy</codetext のボリュームを使用できるようにする>

カスタマーマネージドキーで暗号化されたボリュームをスキャンするには、次のステートメントを OCI ポリシーに追加します。

  • `グループ TenableCS が tenancy</codetext で key-delegate を使用できるようにします>

リージョンごとにプロビジョニングされるリソース

このセクションでは、それぞれの異なる地理的クラウドリージョン内で Tenable がデプロイおよび使用する特定のクラウドインフラコンポーネント (リソース) と、各コンポーネントの特定の技術要件および文脈の詳細に重点を置いています。

AWS

リソース 要件 文脈情報
コンピュート
  • EKSクラスター
  • オンデマンド管理型仮想マシン 2 台、vCPU 4 個、RAM 16 GB
  • 仮想マシンのスキャン
  • EKSクラスター:スキャン操作とオーケストレーションを管理します
  • 仮想マシンの管理:EKSクラスターによって開始されたスキャンプロセスをオーケストレーションする
  • 仮想マシンのスキャン:スキャン処理を実行します。オンデマンドで拡張可能で、最大32 vCPU、64 GB RAMまで対応しています。
    注:必要に応じて増やすことも可能です

プロビジョニングされるノードの数とサイズは Tenable によって自動的に管理され、スキャンの要求に対応しながらコストを最小限に抑えます

アイデンティティ 5 個の IAM ロール
  • EKS クラスター(コントロールプレーン)で使用されます
  • Kublet 管理ノードで使用されます
  • KarpenterノードのKubletが、VMの起動およびスキャンに使用する
  • EBS CSI ドライバーが、スキャンを行うために EC2 インスタンスにディスクを接続する際に使用されます
  • 管理ポッドで使用される
ストレージ 該当なし 該当なし
ネットワーク
  • 2つのエラスティックIP
  • 1 インターネットゲートウェイ
  • 2つのNATゲートウェイ
  • 6 ルーティングテーブル
  • 4 セキュリティグループ
  • 6つのサブネット
  • 1 VPC
  • サブネット:外部との通信用のアウトバウンドサブネット 2 つ、内部通信用のプライベートサブネット 2 つ
  • インターネットゲートウェイ:送信トラフィックに使用されます
  • NATゲートウェイ:NATで使用される
  • VPC:ネットワークコンテナ

サブネットは、プライベートサブネット、EKS (コントロールプレーンおよびワーカー)、VPC に使用されます

セキュリティ KMS キー Kubernetes シークレットの暗号化と復号化に使用
推定最小コスト (月ごと) $300 インフラに対する最小コスト (スキャンコストを除く)スナップショットスキャン費用計算ツールとデータスキャンコスト保護のスキャンコストの詳細をご確認ください。

Azure

リソース 要件 文脈情報
コンピュート
  • AKSクラスター
  • オンデマンド管理型仮想マシン 2 台、vCPU 4 個、RAM 16 GB
  • 仮想マシンのスキャン
  • 内部ロードバランサー
  • AKS クラスター:スキャン操作とオーケストレーションを管理します
  • 仮想マシンの管理:AKS クラスター内のスキャンプロセスを調整します
  • 仮想マシンのスキャン:スキャン処理を実行します。オンデマンドで拡張可能で、最大32 vCPU、64 GB RAMまで対応しています。
    注:必要に応じて増やすことも可能です
  • ロードバランサー:ASK API サーバーへの着信および発信トラフィックを管理するために使用されます
アイデンティティ 3 個のユーザー管理アイデンティティ
  • AKS クラスター(コントロールプレーン)では、以下の目的で使用されます:
    • スキャン用にディスクをVMに接続する
    • Kubernetesのシークレットの暗号化と復号化
  • Kublet によって使用されます(AKS の作成時に Azure によって自動的に作成されます)
  • KarpenterがVMの起動およびスキャンに使用する
ストレージ
  • 1 個のストレージアカウント
    • 1つのBlobコンテナ
スキャン対象サブスクリプションからスキャン用サブスクリプションへマネージドディスクをコピー
ネットワーク
  • 3つのサブネット
    • 3 ネットワークセキュリティグループ
  • 1 プライベートエンドポイント
  • 1 NATゲートウェイ
  • 1つのパブリックIPアドレス
  • 1 仮想ネットワーク
  • 3 ルーティングテーブル
  • サブネット:外部との通信用のエグレス・サブネット 1 つ、内部通信用のプライベート・サブネット 1 つ、ASK API サーバーの VNet 統合用のサブネット 1 つ
    • セキュリティグループ:ネットワークのサブネットごとに使用されます
  • プライベートエンドポイント:AKS 仮想ネットワークのプライベート IP を Azure Key Vault にマッピングし、API トラフィックをインターネットから隔離します。
  • NATゲートウェイ:送信トラフィックに使用されます
  • パブリックIP:NATで使用される
  • 仮想ネットワーク:ネットワークコンテナ
  • ルーティングテーブル:サブネットによって使用される
セキュリティ Key Vault キー Kubernetes シークレットの暗号化と復号化に使用
推定最小コスト (月ごと) $325 インフラに対する最小コスト (スキャンコストを除く)スナップショットスキャン費用計算ツールとデータスキャンコスト保護のスキャンコストの詳細をご確認ください。

GCP

リソース 要件 文脈情報
コンピュート
  • 1つのGKEクラスター
  • 1 個のスポットマシン - e2-standard-2 (2vCPU および 8GB RAM)
  • GKE クラスター:スキャン操作とオーケストレーションを管理します

プロビジョニングされるノードの数とサイズは Tenable によって自動的に管理され、スキャンの要求に対応しながらコストを最小限に抑えます

アイデンティティ 1 個のサービスアカウント (プロジェクトごと) GKE クラスタノードが使用 Kubelet (コントロールプレーン)
ストレージ 該当なし 該当なし
ネットワーク
  • 1 出口サブネット
  • 1 プライベートサブネット
  • 1つのIPアドレス
  • 1 ルーター
  • 1 NATゲートウェイ
  • 1 VPC(プロジェクトごとに)
  • サブネット:外部との通信用のアウトバウンドサブネット 1 つ、内部通信用のプライベートサブネット 1 つ
  • ルーター + NAT:送信トラフィックに使用されます
  • IP:NATで使用される
  • VPC(ネットワークコンテナ):プライベートサブネットとGKE(コントロールプレーンおよびノード)のネットワーク分離を実現します
セキュリティ クラウドキーリングキー Kubernetes シークレットの暗号化と復号化に使用
推定最小コスト (月ごと) $300 インフラに対する最小コスト (スキャンコストを除く)スナップショットスキャン費用計算ツールとデータスキャンコスト保護のスキャンコストの詳細をご確認ください。

OCI

リソース 要件 文脈情報
コンピュート
  • 1 OKEクラスター
  • ノード
  • ノード:アベイラビリティ・ドメインごとに1つのノード

Tenable はプロビジョニングされたノードの数とサイズを自動的に管理し、スキャンの要求に対応しながらコストを最小限に抑えます

アイデンティティ 該当なし 該当なし
ストレージ 該当なし 該当なし
ネットワーク
  • 3つのサブネット
  • 3 ルーティングテーブル
  • VCN
  • 3 セキュリティリスト
  • 1 インターネットゲートウェイ
  • 1 予約済みIPアドレス
  • 1 NATゲートウェイ
  • 1 サービスゲートウェイ
  • サブネット:外部との通信用のアウトバウンドサブネット 2 つ、内部通信用のプライベートサブネット 1 つ
  • NATゲートウェイ:送信トラフィックに使用されます
  • IP:NATで使用される
  • VCN(ネットワークコンテナ):プライベートサブネットおよびOKE(コントロールプレーンおよびノード)に対してネットワークの分離を実現します
セキュリティ
  • Vault
  • キー
Kubernetes シークレットの暗号化と復号化に使用
推定最小コスト (月ごと) $300 インフラに対する最小コスト (スキャンコストを除く)スナップショットスキャン費用計算ツールとデータスキャンコスト保護のスキャンコストの詳細をご確認ください。