私はDSCを使い始めたばかりですが、それをどのように機能させるかを考えています。
私が行き詰まっているのは、資格情報が実際に保護される方法です。私の現在の理解では、それはそれほど素晴らしいものではありません。
大きな3つの問題はこれらです。公開鍵を復号化ソースとして使用すると、実際にこれらの資格情報をどのように保護できますかプッシュおよびプルシナリオで証明書を必要とするコンピューターはどれですか?これらの問題に照らして資格情報を処理するためのベストプラクティスは何ですか?
証明書の公開鍵の使用は、送信元の認証に適しています。ただし、これを復号化キーとして使用すると、証明書の公開キーへのアクセスによってパスワードへのアクセスが決定されます。
MOFファイルを復号化する必要があるすべてのコンピューターに証明書をプッシュする必要がある場合、平均的なユーザーが証明書にアクセスしてMOFを復号化できないようにする方法は何ですか? Active Directoryのセキュリティとは、プレーンテキストのままにして、ADのセキュリティのみに依存することを意味します。
誰かがこれを回避するのを手伝ってくれる?
公開鍵を使用して復号化することはできません。また、秘密鍵を構成生成マシンや配布マシンと共有していません。
すべての資格情報に単一の証明書が使用されているかのように、ワークフローを検討しているようです。あなたはそれを行うことができますが、アイデアは各ノードが独自のキーペアを持っているということだと思います。
「平均的なユーザー」とは、管理者以外のユーザーを意味し、証明書の秘密キーをエクスポートできません(アクセス許可が付与されていない場合)。このキーを移動しないため、ほとんどの可能性はありません。それが公開されています。ユーザーが管理者である場合は、もちろんアクセスできます。
プレーンテキストの認証情報を設定に保存すると、未処理のpowershell設定でも、生成されたMOFでも公開される可能性が高くなります。暗号化されていない場合は、セキュリティで保護する必要があります。
DSCのセキュリティで保護された資格情報はかなり上手く処理されていると思いますが、最初にそれを設定するのは少し大変なことです。
AD環境でエンタープライズPKIを使用している場合は、各マシンがCAへの自動登録用にセットアップされている可能性が高いため、マシン固有の証明書更新されます。この目的で使用する必要な設定があります。
現在のところ、DSCにはツールが非常にむき出しになっているため、構成を生成し、スクリプトを記述して独自のワークフローを作成することになるでしょう。
私の場合、LCMメタMOFを生成するためと、ノードの実際の構成を生成するための個別のスクリプトを用意しているため、資格情報を保護するための手順は両方に分かれています。
LCM生成スクリプトでは、実際にCAにドメインを照会して、構成中のマシンのホスト名に対応する証明書を見つけています。証明書を取得し(CAには秘密鍵がなく、公開鍵しかありません)、後で使用できるようにパスに保存します。メタMOFは、証明書の拇印を使用するように構成されます。
ノード構成スクリプトで、証明書ファイルを使用するように構成データを設定します(ここでも公開鍵のみ)。 MOFが生成されると、資格情報はその証明書で暗号化され、特定のノードの秘密鍵でのみ復号化できます。
私は上記で自分の経験を参照しましたが、この記事は途中で大きな助けになりました: https://devblogs.Microsoft.com/powershell/want-to-secure-credentials-in-windows-powershell-望ましい状態の構成
私は自分でいくつかの穴を埋める必要がありました。それらが示す例で注意すべきことの1つは、ノード構成でThumprint
を提供することです。これはノード構成には必要ありません。構成とLCMメタ構成を同時に生成するだけで、構成データを使用してサムプリントを保存し、そこで使用します。
最後の段落は混乱するかもしれませんが、記事の文脈ではより理にかなっています。両方の設定を同時に生成しない場合、それらの例は奇妙に見えます。私はそれをテストしました。資格情報を暗号化するための構成データでは、Thumbprint
は必要ありません。 CertificateFile
は必須ですが、構成データに含まれている必要があるため、以前に構成データを使用していなかった場合は、ここで使用します。