セキュアなTLS証明書デプロイメントについて

このソリューションは、Oracle Cloud Infrastructure Vaultの主要な不変性がブロッカになる環境で、信頼できるTLS証明書を使用する必要がある組織に対して、セキュアで柔軟かつ準拠のアプローチを提供します。 OCIネイティブのセキュリティ・モデルと、複数のOracleサービスと非Oracleサービスにわたる実際の統合要件とのギャップを効果的に橋渡しします。

Webサーバーまたはアプリケーション・サーバーにセキュアなTLS通信を実装する場合、次のコンポーネントにアクセスできることが不可欠です。

  • TLS証明書
  • ルートおよび中間(証明書チェーン)
  • 対応する秘密キー

Oracle Cloud Infrastructure (OCI)は、OCI管理サービス内で使用する証明書の作成とライフサイクル管理を可能にするネイティブ証明書管理サービスを提供します。このモデルでは、秘密キーはOCI Vaultに安全に格納され、エンド・ユーザーまたは外部システムではアクセスできません。これによりセキュリティが向上しますが、外部アプリケーション・サーバーやハイブリッド環境へのデプロイなど、完全な証明書およびキー制御が必要なシナリオでは柔軟性が制限されます。OCI証明書の認証局(CA)を、証明書と秘密キーの両方に直接アクセスする必要があるシステムに使用しようとすると、課題が発生します。

これは、次のようなサービスと統合する場合に特に問題になります。

  • Oracle Analytics Cloud
  • Oracle Integration
  • OCI ComputeでホストされているWebサーバー
  • オンプレミスまたはエッジ・アプリケーション

通常、これらのプラットフォームでは、SSL/TLSセッションのセキュアな通信および終了をサポートするために、秘密キーへのアクセス機能を含むTLS証明書を完全に制御する必要があります。

このソリューション・プレイブックでは、ハイブリッド環境でOCI CAを使用できるようにすることで、この制限に対処するクロス製品ソリューションを紹介します。

  • プライベート・キーおよび証明書署名リクエスト(CSR)は、OCIの外部でローカルに生成します。
  • CSRは、OCI証明書CAによって署名され、OCIエコシステム内の信頼を維持します。
  • 結果の署名付き証明書は、ローカルで生成された秘密キーと組み合せて、OCI、オンプレミス、または別のクラウドのいずれでも、それを必要とするサービスにデプロイされます。

次の図に、このフローを示します。



この方法は、次の場合に最適です。

  • コスト効率に優れた自己署名証明書で十分な非本番設定。
  • 証明書と秘密キーの両方を制御する必要がある環境(カスタム・サーバーやオンプレミス統合など)。
  • OCI管理証明書(秘密キーを非表示にする)が外部システムと互換性がないシナリオ。

開始する前に

始める前に、次のものが必要です。

  • OCIで設定された秘密キーを安全に格納するためのOCI Vault
  • OCIで設定され、完全に機能するOCI証明書認証局(CA)。
  • ローカル・マシン上のOpenSSLライブラリにアクセスするため、秘密キーを生成できます。

必要なサービスおよびロールについて

このソリューションには、次のサービスおよびロールが必要です。

  • Oracle Cloud Infrastructure

これはサービスに必要なロールです。

サービス名: ロール 必須...
Oracle Cloud Infrastructure: 管理者 コンパートメント内の障害を管理し、証明書、バケット、ボールトおよびキーを読み取ったり管理したりできます(次を参照)。

認証局の管理者に単純なポリシーを使用することも、管理者と動的グループ・ポリシーの両方を設定してロールと職責を分離し、コンパートメントごとに制限することもできます。たとえば:

### Simple Policy for Tenant Administrators
```
Allow group CertificateAuthorityAdmins to manage certificate-authority-family in tenancy
Allow group CertificateAuthorityAdmins to manage leaf-certificate-family in tenancy
Allow group CertificateAuthorityAdmins to read vaults in tenancy
Allow group CertificateAuthorityAdmins to read keys in tenancy
Allow group CertificateAuthorityAdmins to use key-delegate in tenancy
```

または:

### Policy for a Dynamic Group
```
Allow dynamic-group DynamicGroup to use keys in compartment DEF
Allow dynamic-group DynamicGroup to manage objects in compartment XYZ
```
### Policy for Compartment Administrators
```
Allow group CertificateAuthorityAdmins to manage certificate-authority-family in compartment ABC
Allow group CertificateAuthorityAdmins to read keys in compartment DEF
Allow group CertificateAuthorityAdmins to use key-delegate in compartment DEF
Allow group CertificateAuthorityAdmins to read buckets in compartment XYZ
Allow group CertificateAuthorityAdmins to read vaults in compartment DEF
```

必要なものを取得するには、Oracle製品、ソリューションおよびサービスを参照してください。