問題タブ [google-cloud-kms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Kubernetes シークレットとサービス アカウント
私は過去 6 か月間 kubernetes を使用しており、いくつかのサービスをデプロイしました。
暗号化されたデータを保存し、キーを KMS に格納する別のものを展開しようとしています。これには、データ用とキー用の 2 つのサービス アカウントが必要です。
これへのデータ アクセスは監査する必要があります。このデータへのアクセスは非常に機密であるため、攻撃者が監査を受けずにデータとキーへのアクセスを取得できる方法で侵害されたかのように、名前空間に両方のサービス アカウントを配置することには消極的です。
今のところ、シークレットに 1 つのキーがあり、もう 1 つのキーは単一のポッドに手動で投稿します。
1 人の人物がこの鍵を信頼する必要があり、スケーラビリティが制限されるため、これは恐ろしいことです。幸いなことに、このサービスは非常に少量です。
他の誰かが同じ問題に直面しましたか? どうやってそれを回避しましたか?
乾杯
要件
- 1 人のユーザーが両方のキー (データストアと KMS) にアクセスすることはありません。
java - 可能な限りサーバーに依存しないように KMS クライアントを実装する方法は?
ハードウェア セキュリティ モジュール ( )の可能性があるキー管理システム ( KMS
)から秘密キー (主に RSA キー) を取得する必要があるアプリケーションを考えると、知る方法がない場合、その種のクライアントを実装する最良の方法は何でしょうか?アプリケーションが対処しなければならない実装の前に?HSM
KMS
サブ質問は、メイン質問から発生します。
- 異なる実装間のギャップを埋めようとする統合クライアント ライブラリはありますか?
- 少なくとも
KMIP
(Key Management Interoperability Protocol)の実装を対象とするものは、良い例です。 - どの言語向けですか?同じ図書館が目指すものは多ければ多いほどよい。
Java
(私のアプリケーションが実行されるものはありますが、質問を開いたままにしようとしています)?
- 少なくとも
- 複数のサーバー実装を対象とするものがないかほとんどない場合、特定の実装に特定のクライアントはありますか? 私は主に
SMBs
(中小企業)と大企業の間で最も使用されているものについて考えています.- どの言語向けですか?同じ図書館が目指すものは多ければ多いほどよい。
- 用のものはあり
Java
ますか?
- それらのいずれも実際に存在しない場合、または最も必要な実装用のクライアント ライブラリがない場合、最初の実装に焦点を当てながら、将来他の実装に簡単に適応できるようにアプリケーションを設計するための最良の方法は何でしょうか?
KMIP
最初に準拠したものに焦点を当てるのは良い考えだと思いますか?
- 実際に動作するコードのサンプルはインターネット上にありますか?
UML
ダイアグラムでも?この種のリソースは非常に不足しているように感じます。 RESTful
存在するすべてのものと、それらの実装のすべてが実際にAPI を使用し、あらゆる種類のサーバー実装に適応するためにすべてをクライアント側で実装する必要があると考えるのは愚かですか?
おまけの質問:
Google は準拠しているかどうか。そうではないようですが、実際にはクリアもクリアも見つけることができませんでした。Cloud Key Management Service
KMIP
yes
no
その他の役立つリソース:
encryption - リモート バックエンド (GCS バケットなど) に保存されている Terraform 状態を暗号化すると便利ですか?
Terraform を使用して Google Cloud Platform (GCP) リソースを管理しています。Google Cloud Storage バックエンドを使用して状態ファイルを保存します。GCP は管理対象の鍵管理サービスを提供するため、鍵を管理し、それらの鍵を使用してバケットで簡単に暗号化を有効にすることができます。そのため、次を使用してバックエンド バケットを暗号化しています ( test-terraform-state
、このバケットには Terraform 状態のみが含まれます)。
だから私の質問は: バケットの内容 (Terraform の状態) は暗号化できますが、それは本当に便利ですか? バケットにポリシーがある場合、「一部のユーザーのみがアクセス (読み取り/書き込み) できる」などの場合、暗号化を追加するとメリットがありますか? roles/cloudkms.cryptoKeyEncrypterDecrypter
コンテンツにアクセスするには、このバケット + ロールへのアクセスが必要になるため、ここでは追加のセキュリティ レイヤー (必要ですか?) しか表示されません。しかし、Terraform の状態暗号化を正当化するいくつかのユースケースが欠けていると思います。