このページは機械翻訳したものです。

リソース・マネージャの保護

このトピックでは、リソース・マネージャのセキュリティ情報および推奨事項について説明します。

リソース・マネージャでは、指示を構成ファイルに設定することで、Oracle Cloud Infrastructureリソースのプロビジョニングを自動化できます。そうすることで、プロビジョニングされたリソースが組織のセキュリティ・ガイドラインに従っていることを確認します。このような構成ファイルは、infrastructure-as-codeモデルに準拠する宣言型言語を使用して、ステップごとのプロビジョニング手順を取得します。プロビジョニング手順はジョブとして実行されます。

セキュリティの責任

Resource Managerを安全に使用するには、セキュリティとコンプライアンスの職責について学習します。

通常、Oracleはクラウド・インフラストラクチャおよび操作のセキュリティ(クラウド・オペレータのアクセス制御やインフラストラクチャ・セキュリティ・パッチ適用など)を提供します。クラウド・リソースをセキュアに構成する責任はユーザーにあります。クラウドのセキュリティは、ユーザーとOracleの共同責任です。

Oracleは、次のセキュリティ要件に対して責任を負います:

  • 物理セキュリティ: Oracleは、Oracle Cloud Infrastructureで提供されるすべてのサービスを実行するグローバル・インフラストラクチャを保護する責任を負います。このインフラストラクチャは、Oracle Cloud Infrastructureサービスを実行するハードウェア、ソフトウェア、ネットワーキングおよび設備で構成されます。

お客様のセキュリティの責任についてこのページで説明します。次のような領域があります:

  • アクセス制御: 可能なかぎり権限を制限します。ユーザーが作業を行うために必要なアクセス権のみを付与する必要があります。
  • 機密性:構成および出力ファイルでの機密データの使用を制限します

初期セキュリティ・タスク

このチェックリストを使用して、新しいOracle Cloud InfrastructureテナンシでResource Managerを保護するために実行するタスクを識別します。

タスク 詳細情報
IAMポリシーを使用したユーザーおよびリソースへのアクセス権の付与 IAMポリシー

定期的なセキュリティ・タスク

Resource Managerの使用開始後、このチェックリストを使用して、定期的に実行するセキュリティ・タスクを識別します。

タスク 詳細情報
構成ファイルおよび出力ファイルでの機密情報の使用を制限します。 機密保持
セキュリティ監査を実行します 監査

IAMポリシー

リソース・マネージャへのアクセスを制限するには、ポリシーを使用します。

重要

Oracle Cloud Infrastructureリソースを管理するためのポリシーは、リソースにアクセスするリソース・マネージャ操作にも必要です。たとえば、コンピュート・インスタンスおよびサブネットを含むスタック上で適用ジョブを実行するには、リソースをプロビジョニングするコンパートメント内で、これらのリソース・タイプに対する権限を付与するポリシーを必要とします。Oracle Cloud Infrastructureリソースを管理するためのポリシーの例は、共通ポリシーを参照してください。

ポリシーは、Oracle Cloud Infrastructureリソースに誰がどのようにアクセスできるかを指定します。詳細は、ポリシーの仕組みを参照してください。

グループに、その職責を実行するために必要な最小限の権限を割り当てます。各ポリシーには、グループに許可されるアクションを記述する動詞があります。使用可能な動詞は、アクセス・レベルが低い方から順にinspectreadusemanageです。

リソース・マネージャ・ポリシーの詳細は、リソース・マネージャの詳細を参照してください。

スタックおよびジョブの管理

このポリシーを作成して、グループがテナンシ内のスタックおよびジョブを管理したり、テナンシ・スタック上のOracle Cloud Infrastructureリソースを管理できるようにします。

Allow group <group_name> to manage orm-stacks in tenancy
Allow group <group_name> to manage orm-jobs in tenancy

このポリシーを作成して、グループが破棄ジョブを実行することを明示的に防止します。

ノート

このポリシー・ステートメントでは、read orm-jobsへの新しい権限を含める必要があります。これは、3番目のステートメントにジョブのリストまたは取得に関係ない変数を使用する条件が含まれているためです。
Allow group <group_name> to use orm-stacks in tenancy
Allow group <group_name> to read orm-jobs in tenancy
Allow group <group_name> to manage orm-jobs in tenancy where any {target.job.operation = 'PLAN', target.job.operation = 'APPLY'}

スタック権限の詳細は、orm-stacksを参照してください。ジョブ権限の詳細は、orm-jobsを参照してください。

構成ソース・プロバイダの管理

このポリシーを作成して、テナンシで構成ソース・プロバイダを作成、更新、移動および削除する権限をグループに付与します。

Allow group <group_name> to manage orm-config-source-providers in tenancy

このポリシーを作成して、スタックおよびジョブの管理に加えて、ソース・コード制御システムの構成ファイルからスタックを作成する権限(既存の構成ソース・プロバイダを使用)をグループに付与します。

Allow group <group_name> to read orm-config-source-providers in tenancy
Allow group <group_name> to manage orm-stacks in tenancy
Allow group <group_name> to manage orm-jobs in tenancy

構成ソース・プロバイダの権限の詳細は、orm-config-source-providersを参照してください。

プライベート・テンプレートの管理

このポリシーを作成して、テナンシ内のプライベート・テンプレートを作成、更新、移動および削除する権限をグループに付与します。

Allow group <group_name> to manage orm-template in tenancy

このポリシーを作成して、スタックおよびジョブの管理に加えて、プライベート・テンプレートからスタックを作成する権限をグループに付与します。

Allow group <group_name> to manage orm-stacks in tenancy
Allow group <group_name> to manage orm-jobs in tenancy
Allow group <group_name> to read orm-templates in tenancy

プライベート・テンプレートの権限の詳細は、「orm-templates」を参照してください。

プライベート・エンドポイントの管理

このポリシーを作成して、テナンシ内のプライベート・エンドポイントを作成、更新、移動および削除する権限をグループに付与します。これには、プライベート・エンドポイントの作成時にVCNsおよびサブネットを選択する機能も含まれます。

Allow group <group_name> to manage orm-private-endpoints in tenancy
  where any request.operation={'CreatePrivateEndpoint'}"
Allow group <group_name> to use virtual-network-family in tenancy

プライベート・エンドポイント権限の詳細は、orm-private-endpointsを参照してください。

機密保護

リソース・マネージャで機密情報へのアクセスを管理および制御します。

Terraformの状態ファイル

Terraform状態(.tfstate)には、リソースID、パスワード、SSHキーなどの機密データを含めることができます。Vaultサービスを使用して、リソース・マネージャで使用するシークレット資格証明を管理およびローテーションします。

ボールトには、データの保護および保護されたリソースへの接続に使用する暗号化キーおよびシークレットが含まれます。シークレットはマスター暗号化キーを使用して暗号化され、パスワード、証明書、SSHキー、認証トークンなどの資格証明を格納します。シークレットを作成して使用する前に、ボールトおよびマスター暗号化キーが存在しない場合は作成する必要があります。

たとえば、コンピュート・インスタンスでリモート・コマンドおよびスクリプトを実行するには、SSHキーが必要です。「リモート実行の使用」を参照してください。

各シークレットには、シークレット・バージョンが自動的に割り当てられます。シークレットをローテーションすると、新しいシークレット・コンテンツをVaultサービスに提供することで、新しいシークレット・バージョンが生成されます。シークレット・コンテンツを定期的にローテーションすることで、シークレットが公開された場合の影響を抑えることができます。

Terraform状態ファイルへのアクセスを制御するには、次のように読取りジョブのアクセスを制限するセキュリティ・ポリシーを作成します:

Allow group <group_name> to read orm-jobs in compartment

ORM_JOB_READ権限を持つユーザーは、Terraform状態ファイルにアクセスできます。

ノート

権限read orm-jobsは、ログやTerraform構成の取得など他の操作にも影響するため、制限ポリシーによって他の操作を実行する権限が制限されないコンパートメントに状態ファイルを分離することをお薦めします。

Terraform構成

通常、リソース・マネージャのワークフローには、後でスタックの管理に使用されるTerraform構成の記述または生成が含まれます。Terraform構成にはリソース・マネージャのAPI GetJobTfConfigを使用してアクセスできるため、構成ファイルに機密情報を含めないことをお薦めします。

ORM_JOB_READ権限を持つユーザーは、Terraform構成にアクセスできます。

ネットワーク・セキュリティ

リソース・マネージャからアクセスするプライベートGitサーバーやクラウド・リソースなど、リソース・マネージャ・サービスのリソースへのネットワーク・アクセスを保護します。

プライベート・リソースおよび対応するネットワーク・トラフィックをパブリックに公開するかわりに、これらのリソースへのリモート・アクセスにプライベート・エンドポイントを使用します。

セキュリティ・リストネットワーク・セキュリティ・グループ、またはこの両方の組合せを使用して、VCN (仮想クラウド・ネットワーク)のリソース内外のパケット・レベルのトラフィックを制御します。アクセスとセキュリティを参照してください。

プライベート・エンドポイントで使用するネットワーク・セキュリティ・グループ(NSG)を設定する場合は、次のルールを含めます。

  • 非パブリック・リソースへのトラフィックを許可するエグレス・ルール。

    IPアドレス192.168.227.87の非パブリック・コンピュート・インスタンスの例:

    • 最小アクセス数: 192.168.227.87/32
    • VCNおよびサブネットCIDRへの一般アクセス: 192.168.0.0/16
  • プライベート・エンドポイントからのトラフィックを許可するイングレス・ルール。

    IPアドレス192.168.227.87の非パブリック・コンピュート・インスタンスの例:

    • 最小アクセス数: 192.168.198.204/32 (ソース・タイプ: CIDR)
    • サブネットCIDRからの一般アクセス: 192.168.0.0/16

VCNにサブネットを作成すると、デフォルトでサブネットはパブリックとみなされ、インターネット通信が許可されます。プライベート・サブネットを使用して、インターネット・アクセスを必要としないリソースをホストします。VCN内のサービス・ゲートウェイを構成して、プライベート・サブネット上のリソースが他のクラウド・サービスにアクセスできるようにすることもできます。Connectivity Choicesを参照してください。

監査中

Resource Managerのアクセス・ログおよびその他のセキュリティ・データを特定します。

Auditサービスは、Oracle Cloud Infrastructureリソースに対するすべてのAPIコールを自動的に記録します。Auditサービスを使用してテナンシ内のすべてのユーザー・アクティビティを監視することで、セキュリティおよびコンプライアンスの目標を達成できます。コンソール、SDKおよびコマンドライン(CLI)のコールはすべてAPIを経由するため、これらのソースからのすべてのアクティビティが含まれます。監査レコードは、認証済でフィルタ可能な問合せAPIから利用できます。また、オブジェクト・ストレージからバッチ・ファイルとして取得できます。監査ログの内容には、発生したアクティビティ、アクティビティを開始したユーザー、リクエストの日時、リクエストのソースIP、ユーザー・エージェントおよびHTTPヘッダーが含まれます。監査ログ・イベントの表示を参照してください。