「Systemd-creds」の版間の差分
(英語版から転載) |
(→認証情報の暗号化: 翻訳) |
||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
{{Lowercase title}} |
{{Lowercase title}} |
||
− | [[Category: |
+ | [[Category:セキュリティ]] |
[[en:systemd-creds]] |
[[en:systemd-creds]] |
||
+ | '''systemd-creds''' は、[[systemd]] によって提供されるユーティリティおよびサービスであり、[[systemd]] ユニットによって使用される認証情報を安全に保存および取得するように設計されています。これは、さまざまなサービスやアプリケーションに必要な、ユーザー名、パスワード、API キー、その他の認証データなどの機密情報の管理を簡素化することを目的としています。 |
||
− | '''systemd-creds''' is a utility and service provided by [[systemd]], designed to securely store and retrieve credentials used by [[systemd]] units. It aims to simplify the management of sensitive information, such as usernames, passwords, API keys, and other authentication data, required by various services and applications. |
||
− | + | 詳細については、[https://systemd.io/CREDENTIALS/] および {{man|1|systemd-creds}} を参照してください。 |
|
+ | == 認証情報の暗号化 == |
||
− | == Credential encryption == |
||
+ | 認証情報は、ローカル TPM2 チップから派生したキー、{{ic|/var/}} に保存されているキー、または使用可能な場合は両方 (デフォルト) を使用して、オプションで暗号化および認証できます。システムが TPM2 暗号化を使用しているか、または {{ic|/var/}} に保存されているキーのみを使用しているかを確認するには、次のコマンドを実行します。 |
||
− | Credentials may optionally be encrypted and authenticated, either with a key derived from a local TPM2 chip, or one stored in {{ic|/var/}}, or both (the default) if available. To check if your system uses TPM2 encryption or only the key stored in {{ic|/var/}}, run |
||
{{hc|$ systemd-creds has-tpm2| |
{{hc|$ systemd-creds has-tpm2| |
||
18行目: | 18行目: | ||
}} |
}} |
||
+ | {{ic|plaintext.txt}} に保存されているシークレットを暗号化するには、次のコマンドを実行します。 |
||
− | To encrypt a secret stored in {{ic|plaintext.txt}}, run |
||
# systemd-creds --name=foobar encrypt plaintext.txt ciphertext.cred |
# systemd-creds --name=foobar encrypt plaintext.txt ciphertext.cred |
||
+ | {{Note|機密性の高い認証情報の場合は、{{ic|plaintext.txt}} に tmpfs を使用することを検討してください。}} |
||
− | {{Note|In case of sensitive credentials, consider using a tmpfs for {{ic|plaintext.txt}}}} |
||
+ | 暗号化された認証情報には意図した名前が含まれるため、悪用されることはありません。{{ic|--name}} を省略すると、ファイル名が認証情報名として使用されます。 |
||
− | Encrypted credentials carry the intended name in them, so they cannot be mispurposed. If you omit {{ic|--name}}, then the filename will be used as credential name. |
||
+ | 暗号化が成功したことを確認するには、 |
||
− | You can check that encryption was successful with |
||
# shred -u plaintext.txt |
# shred -u plaintext.txt |
||
# systemd-run -P --wait -p LoadCredentialEncrypted=foobar:$(pwd)/ciphertext.cred systemd-creds cat foobar |
# systemd-run -P --wait -p LoadCredentialEncrypted=foobar:$(pwd)/ciphertext.cred systemd-creds cat foobar |
||
+ | 上記の {{ic|--name}} を使用しない場合、正しいコマンドは次のようになります。 |
||
− | Without using {{ic|--name}} above, the correct command would be |
||
# systemd-run -P --wait -p LoadCredentialEncrypted=ciphertext.cred:$(pwd)/ciphertext.cred systemd-creds cat ciphertext.cred |
# systemd-run -P --wait -p LoadCredentialEncrypted=ciphertext.cred:$(pwd)/ciphertext.cred systemd-creds cat ciphertext.cred |
||
+ | あるいは、{{ic|systemd-ask-password}} を使用して、最初にディスクに書き込まずにシークレットを提供することもできます。 {{ic|-p}} スイッチを使用すると、サービスファイルにすぐに含められる形式で認証情報を出力できます。 |
||
− | Alternatively, you can use {{ic|systemd-ask-password}} to provide the secret without first writing it to disk. The {{ic|-p}} switch allows outputting a credential in a format ready to be included in a service file: |
||
# systemd-ask-password -n | systemd-creds encrypt --name=mysql-password -p - - |
# systemd-ask-password -n | systemd-creds encrypt --name=mysql-password -p - - |
||
50行目: | 50行目: | ||
Wg== |
Wg== |
||
+ | 関連する認証情報を含めるサービスファイルを [[編集]] します。 |
||
− | [[Edit]] the service file to include the relevant credential |
||
+ | == ヒントとテクニック == |
||
− | == Tips and tricks == |
||
− | + | 例については、[[Borgmatic#systemd-creds を使用して borgmatic.service のパスワードを提供する|systemd-creds を使用して borgmatic.service のパスワードを提供する]] を参照してください。 |
2023年6月24日 (土) 02:11時点における最新版
systemd-creds は、systemd によって提供されるユーティリティおよびサービスであり、systemd ユニットによって使用される認証情報を安全に保存および取得するように設計されています。これは、さまざまなサービスやアプリケーションに必要な、ユーザー名、パスワード、API キー、その他の認証データなどの機密情報の管理を簡素化することを目的としています。
詳細については、[1] および systemd-creds(1) を参照してください。
認証情報の暗号化
認証情報は、ローカル TPM2 チップから派生したキー、/var/
に保存されているキー、または使用可能な場合は両方 (デフォルト) を使用して、オプションで暗号化および認証できます。システムが TPM2 暗号化を使用しているか、または /var/
に保存されているキーのみを使用しているかを確認するには、次のコマンドを実行します。
$ systemd-creds has-tpm2
yes +firmware +driver +system +subsystem
plaintext.txt
に保存されているシークレットを暗号化するには、次のコマンドを実行します。
# systemd-creds --name=foobar encrypt plaintext.txt ciphertext.cred
暗号化された認証情報には意図した名前が含まれるため、悪用されることはありません。--name
を省略すると、ファイル名が認証情報名として使用されます。
暗号化が成功したことを確認するには、
# shred -u plaintext.txt # systemd-run -P --wait -p LoadCredentialEncrypted=foobar:$(pwd)/ciphertext.cred systemd-creds cat foobar
上記の --name
を使用しない場合、正しいコマンドは次のようになります。
# systemd-run -P --wait -p LoadCredentialEncrypted=ciphertext.cred:$(pwd)/ciphertext.cred systemd-creds cat ciphertext.cred
あるいは、systemd-ask-password
を使用して、最初にディスクに書き込まずにシークレットを提供することもできます。 -p
スイッチを使用すると、サービスファイルにすぐに含められる形式で認証情報を出力できます。
# systemd-ask-password -n | systemd-creds encrypt --name=mysql-password -p - - 🔐 Password: *************** SetCredentialEncrypted=mysql-password: \ k6iUCUh0RJCQyvL8k8q1UyAAAAABAAAADAAAABAAAAD42X4T5h86ynMHG5MAAAAAgAAAA \ AAAAAALACMA8AAAACAAAAAAngAgws4cwpkrOvpxVf4/GSyOYCoQ4dmPs3Vcfg3D0eH/Ov \ cAEC/U9JTyeHgktYBDl8U5jOq/NqFX3IPc24EX7aeTevsL6OKwlTDcF04W1M6eodqngRo \ 1JfRqHWnSfVHHYVXgMjIkWT4AcC0OoqAzQobK5e5G1zjTPygiG/ewGttY9sueKCL/INUu \ n1e6/QB6D9T0x9Sl18CeBtoASepCAE4ACAALAAAAEgAgY9RHOefBR+mMgV/Frr+UzQX1S \ IsLFItIbfB6Ep76It0AEAAgKH2Tduip205Dw0GVkME+yvOUNYVhnSHYqWHQoxelKrdj1E \ c558FH6YyBX8Wuv5TNBfVIiwsUi0ht8HoSnvoi3QAAAAA3WzuXTYG2OFX9wFo740b3YjE \ ZtiCWakoAOxzX+D/vIFyB3INROxpfXUCV7LY4eRITI9PJZiE6lGn4kjZBnbUf47yo1WDG \ Wg==
関連する認証情報を含めるサービスファイルを 編集 します。
ヒントとテクニック
例については、systemd-creds を使用して borgmatic.service のパスワードを提供する を参照してください。