-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[ja] Translate content/ja/docs/tasks/administer-cluster/decrypt-data.md into Japanese #53496
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
4bf5bef
9bc1d24
2abf170
3cf997a
4040378
5d20e4e
2f7f1b7
9116fff
429af6b
ddeb515
9df353f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,143 @@ | ||
| --- | ||
| title: 保存時に既に暗号化されている機密データを復号化する | ||
| content_type: task | ||
| weight: 215 | ||
| --- | ||
|
|
||
| <!-- overview --> | ||
|
|
||
| Kubernetesにおいて、永続的なAPIリソースデータの書き込みが可能なすべてのAPIは、保存時の暗号化をサポートしています。 | ||
| 例えば、{{< glossary_tooltip text="シークレット" term_id="secret" >}}に対して保存時の暗号化を有効にできます。 | ||
| 保存時暗号化は、etcdクラスターまたはkube-apiserverを実行しているホスト上のファイルシステムに対するシステムレベルの暗号化に加えて行われます。 | ||
|
|
||
| このページでは、保存時のAPIデータの暗号化を無効にして、APIデータを暗号化せずに保存する方法を説明します。 | ||
| パフォーマンス向上のためにこれが必要になる場合もありますが、通常は、暗号化する必要があると判断したデータは、暗号化したままにしておくことが適切です。 | ||
|
|
||
| {{< note >}} | ||
| このタスクでは、{{< glossary_tooltip text="Kubernetes API" term_id="kubernetes-api" >}}を使用して保存されたリソースデータの暗号化について説明します。 | ||
| 例えば、Secretオブジェクト(そこに含まれるキーと値のデータを含む)を暗号化できます。 | ||
|
|
||
| コンテナにマウントされたファイルシステム内のデータ暗号化を管理する場合は、代わりに次のいずれかを実行してください。 | ||
|
|
||
| - 暗号化された{{< glossary_tooltip text="ボリューム" term_id="volume" >}}を提供するストレージ統合を使用する | ||
| - アプリケーション側でデータを暗号化する | ||
| {{< /note >}} | ||
|
|
||
| ## {{% heading "prerequisites" %}} | ||
|
|
||
| * {{< include "task-tutorial-prereqs.md" >}} | ||
|
|
||
| * このタスクでは、各コントロールプレーンノードで、Kubernetes APIサーバーが{{< glossary_tooltip text="static Pod" term_id="static-pod" >}}として実行されていることを前提とします。 | ||
|
|
||
| * クラスターのコントロールプレーンは、etcd v3.x(メジャーバージョン3、マイナーバージョンは任意)の使用が**必須**です。 | ||
|
|
||
| * カスタムリソースを暗号化するには、クラスターがKubernetes v1.26以降を実行している必要があります。 | ||
|
|
||
| * 既に暗号化されたAPIデータが存在している必要があります。 | ||
|
|
||
| {{< version-check >}} | ||
|
|
||
| <!-- steps --> | ||
|
|
||
| ## 保存時の暗号化が既に有効かどうかを確認する {#determine-whether-encryption-at-rest-is-already-enabled} | ||
|
|
||
| デフォルトでは、APIサーバーはリソースの平文表現を保存する`identity`プロバイダーを使用します。 | ||
| **デフォルトの`identity`プロバイダーは、いかなる機密性保護も提供しません。** | ||
|
|
||
| `kube-apiserver`プロセスは、設定ファイルへのパスを指定する引数`--encryption-provider-config`を受け入れます。このファイルを指定すると、その内容に基づき、etcdでのKubernetes APIデータの暗号化方式が制御されます。 | ||
| 指定されていない場合、保存時の暗号化は有効になりません。 | ||
|
|
||
| この設定ファイルはYAML形式で、[`EncryptionConfiguration`](/docs/reference/config-api/apiserver-config.v1/)という種類の設定APIを表します。 | ||
| 設定の例は[保存時の暗号化設定](/docs/tasks/administer-cluster/encrypt-data/#understanding-the-encryption-at-rest-configuration)で確認できます。 | ||
|
|
||
| `--encryption-provider-config`が指定されている場合は、どのリソース(例: `secrets`)が暗号化対象として設定されているか、またどのプロバイダーが利用されているかを確認してください。 | ||
| そのリソースタイプで優先されているプロバイダーが`identity`**ではない**ことを確認します。 | ||
| 保存時の暗号化を無効にする場合のみ、`identity`(_暗号化なし_)をデフォルトとして設定します。 | ||
|
|
||
| リソースで最初にリストされているプロバイダーが`identity`**以外**であることを確認してください。 | ||
| もしそう設定されていれば、そのリソースに書き込まれる新しいデータはすべて、設定に従って暗号化されます。 | ||
| もし最初にリストされているプロバイダーが`identity`である場合、そのリソースは暗号化されずにetcdへ書き込まれています。 | ||
|
|
||
| ## すべてのデータを復号化する {#decrypting-all-data} | ||
|
|
||
| この例では、保存時のSecret APIの暗号化を停止する方法を示します。 | ||
| 他の種類のAPIを暗号化している場合は、必要に応じて手順を調整してください。 | ||
|
|
||
| ### 暗号化設定ファイルを特定する {#locate-the-encryption-configuration-file} | ||
|
|
||
| まず、APIサーバーの設定ファイルを特定します。各コントロールプレーンノードでは、kube-apiserver用のstatic Podマニフェストが、コマンドライン引数`--encryption-provider-config`を指定しています。 | ||
| このファイルは、[`hostPath`](/docs/concepts/storage/volumes/#hostpath)ボリュームマウントを使用してstatic Podにマウントされていることが多いです。 | ||
| ボリュームの場所を確認し、ノードのファイルシステム上でファイルを見つけて内容を確認します。 | ||
|
|
||
| ### APIサーバーを設定してオブジェクトを復号化する {#configure-the-api-server-to-decrypt-objects} | ||
|
|
||
| 保存時の暗号化を無効にするには、暗号化設定ファイルの最初のエントリとして`identity`プロバイダーを追加します。 | ||
|
|
||
| 以下が既存のEncryptionConfigurationファイルの例です。 | ||
|
|
||
| ```yaml | ||
JunichiroKohari marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| --- | ||
| apiVersion: apiserver.config.k8s.io/v1 | ||
| kind: EncryptionConfiguration | ||
| resources: | ||
| - resources: | ||
| - secrets | ||
| providers: | ||
| - aescbc: | ||
| keys: | ||
| # 下記は例であり有効なキーではないので、暗号化に使わないでください。 | ||
| - name: example | ||
| secret: 2KfZgdiq2K0g2YrYpyDYs9mF2LPZhQ== | ||
| ``` | ||
|
|
||
| 次のように変更します。 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 視認性のため、コードブロックの前後には、空行を追加するとよさそうです。 |
||
|
|
||
| ```yaml | ||
| --- | ||
| apiVersion: apiserver.config.k8s.io/v1 | ||
| kind: EncryptionConfiguration | ||
| resources: | ||
| - resources: | ||
| - secrets | ||
| providers: | ||
| - identity: {} # この行を追加してください。 | ||
| - aescbc: | ||
| keys: | ||
| - name: example | ||
| secret: 2KfZgdiq2K0g2YrYpyDYs9mF2LPZhQ== | ||
| ``` | ||
|
|
||
| このノードでkube-apiserver Podを再起動します。 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 空行が入っていなかった各箇所に空行を入れました。 |
||
|
|
||
| ### 他のコントロールプレーンホストを再設定する {#api-server-config-update-more-1} | ||
|
|
||
| クラスター内に複数のAPIサーバーがある場合、変更を各APIサーバーに順番にデプロイする必要があります。 | ||
| 各コントロールプレーンホストが同一の暗号化設定を使用していることを確認してください。 | ||
|
|
||
| ### 強制的に復号化する {#force-decryption} | ||
|
|
||
| 次に、以下のコマンドを実行して、すべてのSecretを強制的に復号化します。 | ||
|
|
||
| ```shell | ||
JunichiroKohari marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| # 異なる種類のオブジェクトを復号化する場合は、一致するように「secrets」を変更します。 | ||
| kubectl get secrets --all-namespaces -o json | kubectl replace -f - | ||
| ``` | ||
|
|
||
| 既存の暗号化済みリソースを**すべて**、暗号化を使用しないデータとして書き換えたら、`kube-apiserver`から暗号化設定を削除できます。 | ||
|
|
||
| 削除するコマンドラインオプションは次のとおりです。 | ||
|
|
||
| - `--encryption-provider-config` | ||
| - `--encryption-provider-config-automatic-reload` | ||
|
|
||
| 変更を反映するには、kube-apiserver Podを再起動します。 | ||
|
|
||
| ### 他のコントロールプレーンホストを再設定する {#api-server-config-update-more-2} | ||
|
|
||
| クラスター内に複数のAPIサーバーがある場合は、各APIサーバーに順番に変更をデプロイする必要があります。 | ||
|
|
||
| 各コントロールプレーンホストで同じ暗号化設定を使用していることを確認してください。 | ||
|
|
||
| ## {{% heading "whatsnext" %}} | ||
|
|
||
| * [EncryptionConfiguration configuration API (v1)](/docs/reference/config-api/apiserver-config.v1/)について学ぶ. | ||
JunichiroKohari marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Uh oh!
There was an error while loading. Please reload this page.