コネクタ・ハブの保護

このトピックでは、Oracle Cloud Infrastructure Connector Hubサービスのセキュリティ情報および推奨事項について説明します。

セキュリティの責任

コネクタ・ハブを安全に使用するには、セキュリティおよびコンプライアンスの責任について学習します。

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

Oracleは次のセキュリティ要件を担当します。

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

セキュリティの責任については、このページで説明します。このページには、次の領域が含まれています。

  • アクセス制御:権限はできるかぎり制限します。ユーザーが作業を行うために必要なアクセス権のみを付与する必要があります。

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

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

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

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

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

コネクタ・ハブには、定期的に実行する必要があるセキュリティ・タスクはありません。

IAMポリシー

ポリシーを使用して、コネクタ・ハブへのアクセスを制限します。

ポリシーは、Oracle Cloud Infrastructureリソースにアクセスできるユーザーとその方法を指定します。詳細は、ポリシーの仕組みを参照してください。

グループに、その責任を実行するために必要な最小限の権限を割り当てます。各ポリシーには、グループが許可されるアクションを説明する動詞があります。最もアクセスの少ない量から、使用可能な動詞はinspectreaduseおよびmanageです。

ユーザー・アクセス・ポリシー

このポリシーを作成して、グループConnectorUsersABCコンパートメント内のコネクタの作成、更新および削除を許可します。

Allow group ConnectorUsers to manage serviceconnectors in compartment ABC

このポリシーを作成すると、グループConnectorUsersABCコンパートメント内のコネクタのみを更新できます(グループがコネクタを作成または削除することはできません)。

Allow group ConnectorUsers to use serviceconnectors in compartment ABC

コネクタ・ハブ・ポリシーの詳細は、コネクタ・ハブの詳細を参照してください。

サービス・アクセス・ポリシー

ノート

作成するポリシーが会社のガイドラインに準拠していることを確認します。

コネクタがデータを移動するには、ソースタスクおよびターゲットの各サービス内の指定されたリソースにアクセスするための認可が必要です。一部のリソースにはポリシーなしでアクセスできます。コンソールを使用してコネクタを定義すると、必要な認可が用意されたデフォルト・ポリシーが提供されます。これらのポリシーは、コネクタのコンテキスト限定です。デフォルト・ポリシーを受け入れるか、ユーザーおよびサービスのアクセスに対するカスタム・ポリシーに適切な認可があることを確認できます。

たとえば、データをロギングからモニタリングに移動するコネクタを作成または編集すると、次のデフォルト・ポリシーが提供されます。

allow any-user to use metrics in compartment id <target_metric_compartment_OCID>
where all {
    request.principal.type='serviceconnector',
    target.metrics.namespace='<metric_namespace>',
    request.principal.compartment.id='<serviceconnector_compartment_OCID>'
}

デフォルト・ポリシーを含む詳細は、ソース、タスクおよびターゲット・サービスへのアクセスを参照してください。

クロステナンシ・コネクタ・アクセス

クロステナンシ・コネクタ・アクセスを使用して、独自のテナンシを持つ別の組織とコネクタを共有します。たとえば、社内の別のビジネス・ユニット、会社の顧客、または会社にサービスを提供する会社とコネクタを共有します。

ノート

他のテナンシのリソースにアクセスするコネクタを作成するには、OCI SDK、CLIまたはAPIを使用する必要があります。(コンソールポリシー・ビルダーは、他のテナンシからの情報を提供したり、Endorse、AdmitまたはDefineステートメントを提案したりしません。)CLIおよびAPIの手順については、コネクタの作成を参照してください。

リソースにアクセスして共有するには、両方のテナンシの管理者は、アクセスと共有が可能なリソースを明示的に示す特別なポリシー・ステートメントを作成する必要があります。これらの特別なステートメントは、DefineEndorseおよびAdmitという語句を使用します。これらのステートメントの詳細は、「テナンシをまたがるオブジェクト・ストレージ・リソースへのアクセス」ページの「ステートメントの承認、許可および定義」を参照してください。

ソース・テナンシのポリシー・ステートメント

ソース・テナンシでポリシー・ステートメントを使用して、次のことを行います:

  • 宛先テナンシからコネクタを認め、(ソース)テナンシのリソースにアクセスします
  • コネクタをエンドースして宛先テナンシのリソースにアクセスします
  • 宛先テナンシのリソースにアクセスするためのグループの承認
ノート

次のポリシー・ステートメントの例は、読みやすいように書式設定されています。これらの文のコピーを使用する前に、改行、タブおよびスペースを削除してください。
宛先テナンシからのコネクタを認めて、(ソース)テナンシの特定の種類のリソースにアクセスします
Define tenancy DestinationTenancy as <destination_tenancy_OCID>
Admit any-user of tenancy DestinationTenancy to <permissions_for_resource_kind> in compartment id <compartment_OCID_in_source_tenancy>
    where all 
    { 
        request.principal.type='serviceconnector', 
        request.principal.compartment.id=<compartment_OCID_in_destination_tenancy>' 
    }
たとえば、「例」を参照してください。コネクタによってアクセスされる特定のタイプのリソースに必要な権限を検索するには、デフォルト・ポリシーを参照してください。
(ソース)テナンシのグループをエンドースして、任意のテナンシのコネクタで何でもします
Endorse group <group_name> to manage serviceconnectors in any-tenancy
(ソース)テナンシのグループをエンドースして、宛先テナンシ内のコネクタでのみ何でも行います

テナンシ・アクセスの範囲を狭くするポリシーを記述するには、ソース管理者が、宛先管理者によって指定された宛先テナンシのOCIDを参照する必要があります。

Define tenancy DestinationTenancy as <destination_tenancy_OCID>
Endorse group <group_name> to read serviceconnectors in tenancy DestinationTenancy

宛先テナンシのポリシー・ステートメント

宛先テナンシでポリシー・ステートメントを使用して、次のことを行います:

  • コネクタをエンドースしてソース・テナンシのリソースにアクセスします
  • ソース・テナンシからのコネクタを認め、(宛先)テナンシのリソースにアクセスします
  • ソース・テナンシからグループまたは動的グループを許可して、(宛先)テナンシのリソースにアクセスします
ノート

次のポリシー・ステートメントの例は、読みやすいように書式設定されています。これらの文のコピーを使用する前に、改行、タブおよびスペースを削除してください。
(宛先)テナンシ内のコネクタをエンドースして、ソース・テナンシ内の特定の種類のリソースにアクセスします
Define tenancy SourceTenancy as <source_tenancy_OCID>
Endorse any-user to <permissions_for_resource_kind> in tenancy SourceTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
たとえば、「例」を参照してください。コネクタによってアクセスされる特定のタイプのリソースに必要な権限を検索するには、デフォルト・ポリシーを参照してください。
ソース・テナンシから(宛先)テナンシ内のコネクタに対して何でも実行することを許可します
Define tenancy SourceTenancy as <source_tenancy_OCID>
Define group <group_name> as <group_OCID>
Admit group <group_name> of tenancy SourceTenancy to manage serviceconnectors 
    in tenancy
ソース・テナンシから(宛先テナンシ内の)SharedConnectorsコンパートメント内のコネクタのみを読み取るグループを許可します
Define tenancy SourceTenancy as <source_tenancy_OCID>
Define group <group_name> as <group_OCID>
Admit group <group_name> of tenancy SourceTenancy to read serviceconnectors 
    in compartment SharedConnectors
ソース・テナンシから(宛先テナンシ内の)SharedConnectorsコンパートメント内のコネクタのみを読み取る動的グループを許可します
Define tenancy SourceTenancy as <source_tenancy_OCID>
Define dynamic-group <dynamic_group_name> as <group_OCID>
Admit dynamic-group <dynamic_group_name> of tenancy SourceTenancy to read serviceconnectors 
    in compartment SharedConnectors
動的グループによってアクセスされる特定のタイプのリソースに必要な権限を検索するには、カスタム・ポリシーを参照してください。

サンプル

ノート

  • コネクタを作成する前に、クロステナンシ・ポリシーを記述します。OCI SDK、CLIまたはAPIを使用して、クロステナンシ・コネクタを作成する必要があります。
  • 次のポリシー・ステートメントの例は、読みやすいようにフォーマットされています。これらの文のコピーを使用する前に、改行、タブおよびスペースを削除してください。
  • これらの例で説明していないソース、ターゲットまたはタスク・リソースへのアクセスについてコネクタを承認または許可するには、デフォルト・ポリシーのリソース権限を使用します。
別のテナンシのストリーム・ソース

コネクタのポリシーを記述して、異なるテナンシのストリームからコネクタのテナンシのバケットにデータを移動します。


別のテナンシのストリーム・ソース
コールアウト 説明
1 コネクタ・ソースとして使用されるストリーム
2 ストリームからバケットにデータを移動するコネクタ
3 コネクタ・ターゲットとして使用されるバケット

次に、テナンシBのコネクタを使用して、テナンシAのストリームからテナンシBのバケットにこのデータを移動するポリシーを示します。

テナンシA
テナンシBの指定されたコンパートメント内のコネクタを認め、このテナンシの指定されたコンパートメント内のストリームにアクセスします。
Define tenancy ConnectorTenancy as <tenancy_b_OCID>
Admit any-user of tenancy ConnectorTenancy to {STREAM_READ, STREAM_CONSUME} in compartment id <compartment_OCID_in_tenancy_a>
    where all 
    { 
        request.principal.type='serviceconnector', 
        request.principal.compartment.id=<compartment_OCID_in_tenancy_b>' 
    }
テナンシB
テナンシAのストリームにアクセスするために、このテナンシ内のコネクタを承認します。
Define tenancy StreamTenancy as <tenancy_a_OCID>
Endorse any-user to {STREAM_READ, STREAM_CONSUME} in tenancy StreamTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
このテナンシの指定されたコンパートメント内のコネクタが、データをバケット(同じテナンシ)に移動できるようにします。
Allow any-user to manage objects in compartment id <target_bucket_compartment_OCID> 
    where all {
        request.principal.type='serviceconnector',
        target.bucket.name='<bucket_name>',          
        request.principal.compartment.id='<serviceconnector_compartment_OCID>'
    }
別のテナンシのログ・ソース

コネクタのポリシーを記述して、別のテナンシのログからコネクタのテナンシのログ・グループにデータを移動します。


別のテナンシのログ・ソース
コールアウト 説明
1 コネクタ・ソースとして使用されるログ
2 ログからログ・グループにデータを移動するコネクタ
3 コネクタ・ターゲットとして使用されるログ・グループ
テナンシA
テナンシBの指定されたコンパートメント内のコネクタを認め、このテナンシの指定されたコンパートメント内のログにアクセスします。
Define tenancy ConnectorTenancy as <tenancy_b_OCID>
Admit any-user of tenancy ConnectorTenancy to read log-content in compartment id <compartment_OCID_in_tenancy_a>
    where all 
    { 
        request.principal.type='serviceconnector', 
        request.principal.compartment.id=<compartment_OCID_in_tenancy_b>' 
    }
テナンシB
テナンシAのログにアクセスするには、このテナンシ内のコネクタを承認します。
Define tenancy LogTenancy as <tenancy_a_OCID>
Endorse any-user to read log-content in tenancy LogTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
このテナンシの指定されたコンパートメント内のコネクタが、ログ・グループ(同じテナンシ)にデータを移動できるようにします。
Allow any-user to use loganalytics-log-group in compartment id <target_log_group_compartment_OCID> 
    where all {
        request.principal.type='serviceconnector', 
        target.loganalytics-log-group.id=<log_group_OCID>, 
        request.principal.compartment.id=<serviceconnector_compartment_OCID>
    }
別のテナンシのファンクション・ターゲット

コネクタのテナンシのログから別のテナンシのファンクションにデータを移動するコネクタのポリシーを記述します。


別のテナンシのファンクション・ターゲット
コールアウト 説明
1 コネクタ・ソースとして使用されるログ
2 ログから関数にデータを移動するコネクタ
3 コネクタ・ターゲットとして使用される関数
テナンシA
このテナンシの指定されたコンパートメント内のコネクタを承認して、テナンシBの指定されたコンパートメント内のファンクションにアクセスします。
Define tenancy FunctionTenancy as <tenancy_b_OCID>
Endorse any-user to use fn-function in tenancy FunctionTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
Define tenancy FunctionTenancy as <tenancy_b_OCID>
Endorse any-user to use fn-invocation in tenancy FunctionTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
このテナンシの指定されたコンパートメント内のコネクタがログ(同じテナンシ)にアクセスすることを許可します。
Allow any-user to read log-content in compartment id <source_log_compartment_OCID>

    where all {
        request.principal.type='serviceconnector',         
        request.principal.compartment.id='<serviceconnector_compartment_OCID>'
    }
テナンシB
テナンシAのコネクタを認め、このテナンシ内のファンクションにアクセスします。
Define tenancy ConnectorTenancy as <tenancy_a_OCID>
Admit any-user to use fn-function in tenancy ConnectorTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
Define tenancy ConnectorTenancy as <tenancy_a_OCID>
Admit any-user to use fn-invocation in tenancy ConnectorTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
他のテナンシのソース・メトリックおよびターゲット・バケット

コネクタのポリシーを記述して、データを別のテナンシ(A)のメトリックから別のテナンシ(C)のファンクションに移動します。


他のテナンシのソース・メトリックおよびターゲット・バケット
コールアウト 説明
1 コネクタ・ソースとして使用されるメトリック
2 メトリックからバケットにデータを移動するコネクタ
3 コネクタ・ターゲットとして使用されるバケット
テナンシA
テナンシBの指定されたコンパートメント内のコネクタを認め、このテナンシの指定されたコンパートメント内のメトリックにアクセスします。
Define tenancy ConnectorTenancy as <tenancy_b_OCID>
Admit any-user of tenancy ConnectorTenancy to read metrics in compartment id <compartment_OCID_in_tenancy_a>
    where all 
    { 
        request.principal.type='serviceconnector', 
        request.principal.compartment.id=<compartment_OCID_in_tenancy_b>' 
    }
テナンシB
このテナンシ内のコネクタを承認して、テナンシAの任意のメトリックにアクセスします。
Define tenancy MetricTenancy as <tenancy_a_OCID>
Endorse any-user to read metrics in tenancy MetricTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
このテナンシ内のコネクタを承認して、テナンシC内の任意のバケットにアクセスします。
Define tenancy BucketTenancy as <tenancy_c_OCID>
Endorse any-user to manage objects in tenancy BucketTenancy
    where all 
    { 
        request.principal.type='serviceconnector' 
    }
テナンシC
テナンシBの指定されたコンパートメント内のコネクタを認め、このテナンシの指定されたコンパートメント内の任意のバケットにデータを移動します。
Define tenancy ConnectorTenancy as <tenancy_b_OCID>
Admit any-user of tenancy ConnectorTenancy to manage objects in compartment id <compartment_OCID_in_tenancy_c>
    where all 
    { 
        request.principal.type='serviceconnector', 
        request.principal.compartment.id=<compartment_OCID_in_tenancy_b>' 
    }