Vaultシークレットの管理
ボールト・シークレット、シークレット・タグおよびシークレット・ルールを作成および管理します。
OCIクラウド・サービスを使用することが重要であるため、デジタル・ボールトにシークレットを格納、取得および管理することが重要です。シークレットには、OCIサービスおよびシステムへの接続に使用するパスワード、証明書、SSHキーまたは認証トークンを指定できます。OCI Vaultにシークレットを格納すると、コードまたは構成ファイルに格納するよりもセキュリティが高くなります。アプリケーションはOCIシークレット管理と通信して、シークレットを取得し、ターゲット・サービスに接続します。
Oracle Cloud Infrastructure Secret Managementでは、シークレットを使用して、APIキー、パスワード、暗号化キーなどの機密データを簡単に保護できます。これらのシークレットを安全に作成、格納、管理およびアクセスするための堅牢なソリューションを提供します。提供される一元化されたストレージでは、ハードウェア・セキュリティ・モジュール(HSM)と詳細なアクセス制御を利用して、重要な情報のセキュリティと整合性を保護します。OCIシークレット管理を使用して、アプリケーションにシークレットを直接埋め込むことをなくし、攻撃対象領域を減らし、アプリケーション全体のセキュリティを強化します。
シークレットの自動生成およびローテーション
シークレットが生成されると、定期的に更新されます。シークレットは手動で更新することも、自動的に設定することもできます。シークレットの自動生成およびローテーションは、シークレットを手動で設定し、スクリプトを使用してローテーションする際の負担を軽減しますが、かわりに、シークレットの作成、ローテーションおよび削除から効率的に管理する方法を提供します。
シークレットの自動生成機能では、シークレット生成用のテンプレートの使用がサポートされています。自動シークレット・ローテーションを使用すると、1か月から12か月までのシークレット間隔を設定できます。この機能は、Autonomous Databaseおよびファンクション・サービスと統合され、Autonomous Databaseまたはファンクション・コードで使用されるシークレットを更新できます。OCI Functionsでは、シークレットの自動ローテーションにより、資格証明を簡単にローテーションし、ローテーション・プロセスの一部としてコードを実行できます。自動化シークレットのローテーション機能は、手動で作成したシークレットにも使用できます。
自動シークレット・ローテーションを使用する利点
- セキュリティの強化: シークレットを定期的に更新すると、漏洩した資格証明によるデータ侵害の影響が最小限に抑えられます。
- 運用効率: シークレットの作成、回転などの手動タスクを自動化することで、時間と効率が節約されます。
- 規制コンプライアンス: 秘密のローテーションと自動化のコンプライアンスを規制する多くの基準に準拠します。
- 人的ミスの削減: 反復的なタスクを自動化することで、人的ミスの可能性が軽減され、セキュリティが強化されます。
シークレット生成
パスフレーズ、SSHキーおよびバイトのシークレットを生成できます。OCI Vaultが生成するすべてのシークレットは、FIPSおよびセキュリティに準拠しています。OCIコンソール、APIまたはCLIを使用してシークレットを生成できます。シークレットを生成する場合は、シークレット・コンテキストを指定し、シークレット・テンプレートを定義する必要があります。シークレット・コンテキストは、シークレットのシークレット・タイプおよび構造を定義します。選択したシークレット・タイプに基づいて、Vaultは様々なシークレット生成テンプレートをサポートしています。
PASSPHRASE
: 最大32文字の長さのパスワードを生成します。OCI Databaseサービスのデフォルト・パスワードの場合、最大文字長は30です。SSH_KEY
: 長さ2048、3072および4096のRSAキー・ペアを生成します。秘密鍵はPKCS#8 PEM形式で格納され、公開鍵はX.509 PEM形式で格納されます。BYTES
: FIPS苦情バイナリ・シークレットである512バイトと1024バイトを生成します。バイトはbase64コードです。
シークレット・タイプおよびデフォルト・テンプレート
PASSPHRASE
- サポートされているテンプレート:
SECRETS_DEFAULT_PASSWORD
およびDBAAS_DEFAULT_PASSWORD
- シークレット・テンプレートのプレースホルダ:
%GENERATED_PASSPHRASE%
- 例:
{"user": "abc", "pwd": "%GENERATED_PASSPHRASE%"}
- サポートされているテンプレート:
-
SSH_KEY
- サポートされているテンプレート:
RSA_2048
、RSA_3072
、RSA_4096
- シークレット・テンプレートのプレースホルダ:
%GENERATED_PUBLIC_KEY%
、%GENERATED_PRIVATE_KEY%
- 例:
{"publicKey": "%GENERATED_PRIVATE_KEY%", "privateKey": "%GENERATED_PRIVATE_KEY%"} → {"publicKey": "-----BEGIN PUBLIC KEY-----\nBase64 encoded public key\n-----END PUBLIC KEY-----", "privateKey":"-----BEGIN PRIVATE KEY-----\nBase64 encoded private key\n-----END PRIVATE KEY-----"}
- サポートされているテンプレート:
BYTES
- サポートされているテンプレート:
BYTES_512
、BYTES_1024
- シークレット・テンプレートのプレースホルダ:
%GENERATED_BYTES%
- 例:
{"host": "abc", "hostLuksKey": "%GENERATED_BYTES%"} → {"host": "abc", "hostLuksKey": "generatedbyteshere=="}
- サポートされているテンプレート:
シークレット・バージョンおよびローテーション状態
ボールト・シークレット・バージョン、ローテーション状態およびシークレット・バージョン制限の影響について学習します。
ボールト・シークレット・バージョンおよびローテーション状態について理解することで、制限、ローテーションや他のルール、または規制への準拠を保つようにシークレット・コンテンツをトラッキングおよび管理できます。
シークレットのバージョンおよびローテーション状態を含む、シークレットの概念の基本を学習するには、キーおよびシークレット管理の概念に関する項を参照してください。シークレス・バージョンの作業の詳細は、Vaultシークレットの管理に関する項を参照してください。
ローテーション状態
シークレット・バージョンは、一度に複数のローテーション状態になることができます。1つのシークレット・バージョンのみが存在する場合(シークレットを初めて作成したときなど)、そのシークレット・バージョンは自動的に「現在」と「最新」の両方としてマークされます。最新バージョンのシークレットには、最後にボールトにアップロードされたシークレット・コンテンツが含まれます。最近アップロードされたシークレット・マテリアルがあるシークレット・バージョンを検索する必要がある場合は、「最新」ステータスを使用してこれを実行できます。
シークレット・ローテーション用に新しいシークレット・コンテンツをアップロードする場合、シークレット・バージョンを「保留中」としてマークできます。これにより、シークレット・マテリアルをすぐに使用可能にせずにボールトにアップロードできます。保留中のシークレット・バージョンが現在のステータスにプロモートする準備ができるまで、「現在」シークレット・バージョンを使用し続けることができます。通常は、最初にターゲット・リソースまたはサービス上で資格証明をローテーションした後、これを行います。シークレット・ローテーションが、シークレットに依存するアプリケーションおよびリソースに及ぼす影響を考慮する必要があることに注意してください。現在のシークレット・バージョンを変更すると、それを必要とするアプリケーションが期待されるシークレット・バージョンをボールトから取得できなくなる可能性があります。
シークレット・バージョンは、「前」としてマークすることもできます。これにより、シークレットを以前のバージョンに簡単にロールバックできます。シークレットが誤ってローテーションされた場合、または古いシークレット・バージョンを使用して再開する必要があるリソースのバックアップをリストアする場合に、これを行う必要がある場合があります。「前」としてマークされたシークレット・バージョンは、最新のローテーションの直前に「現在」としてマークされたバージョンです。以前のバージョンにロールバックするには、シークレットを更新して、目的のシークレット・バージョン番号を指定します。
シークレット・バージョンが削除されていないかぎり、シークレットを更新して、その過去のシークレット・バージョンを使用できます。シークレットを更新すると、選択するシークレット・バージョン番号を「現在」としてマークします。これは、シークレット・バージョンを「現在」にプロモートするのと同じ結果になります。
削除できるのは、「非推奨」としてマークされているシークレット・バージョンだけです。非推奨のシークレット・バージョンとは、「現在」、「保留中」、「前」のいずれとしてもマークされていないバージョンです。これにより、削除されたシークレット・バージョンが後で必要になるような状況(たとえば、前にバックアップされたデータベースをリストアする場合)を回避できます。「非推奨」以外のマークが付いているシークレット・バージョンは、「現在」としてマークして、再びアクティブに使用できます。
バージョン制限
シークレット・バージョンの制限は、使用中のシークレット・バージョンと非推奨のバージョン(削除がスケジュールされているバージョンを含む)の両方に適用されます。特定のシークレット・バージョンの数、およびテナンシ内のシークレット・バージョンの制限の詳細は、サービス制限に関する項を参照してください。
開始する前に
開始する前に、まずシークレット・ルールおよびシークレット・バージョンおよびローテーション状態を読んで、ルール、シークレット・バージョンおよびシークレット・バージョン・ローテーション状態の作業の意味をよく理解することをお薦めします。
必須IAMポリシー
Oracle Cloud Infrastructureを使用するには、管理者がテナンシ管理者によってポリシーでセキュリティ・アクセス権が付与されたグループのメンバーである必要があります。コンソールまたは(SDK、CLIまたはその他のツールを使用した) REST APIのどれを使用しているかにかかわらず、このアクセス権が必要です。権限がない、または認可されていないというメッセージが表示された場合は、どのタイプのアクセス権があり、どのコンパートメントでアクセスが機能するかをテナンシ管理者に確認してください。
管理者向け:
- セキュリティ管理者によるボールト、キーおよびシークレットの管理のポリシーを使用すると、指定したグループは、ボールト、キーおよびシークレットに関するすべての操作を実行できます。
- 暗号化キーを有効にするポリシーの作成ポリシーにより、指定したグループは特定のボールト内のシークレットですべてを実行できます。
- ユーザーによるすべてのシークレットの読取り、更新およびローテーションのポリシーを使用すると、指定したグループは、テナンシの任意のボールト内のすべてのシークレットの読取り、更新およびローテーションを行うことができます。
- 権限の詳細、またはシークレットのより詳細なポリシーを記述する方法については、ボールト・サービスの詳細を参照してください。
ポリシーを初めて使用する場合は、アイデンティティ・ドメインの管理および共通ポリシーを参照してください。
シークレットのタグ付け
リソースにタグを適用すると、ビジネス・ニーズに応じた整理に役立ちます。リソースの作成時にタグを適用できます。また、後でリソースを更新して、タグを追加、改訂または削除できます。タグ適用についての一般情報は、リソース・タグを参照してください。
リソースのモニタリング
別のコンパートメントへのリソースの移動
シークレットはコンパートメント間で移動できます。シークレットを新しいコンパートメントに移動した後、コンパートメントに構成されたポリシーは即座に適用され、シークレットおよびシークレット・バージョンへのアクセスに影響します。シークレットを移動しても、シークレットに関連付けられているボールトへのアクセスには影響しません。同様に、ボールトは、そのシークレットの移動とは別に、コンパートメント間で移動できます。詳細は、コンパートメントの管理を参照してください。