2016-07-06 6 views
1

Ich verwende verschlüsselte Daten in Chef und die geheime Datei ist derzeit im Quellcode vorhanden.Ist es möglich, die Kochbuchquelle von Chefkoch in einer verschlüsselten Datensammlung zu speichern?

secret = cookbook_file "/etc/chef/#{env_encrypted_data_bag_secret" do 
    source "env_encrypted_data_bag_secret" 
    mode 0755 
    owner "root" 
    group "root" 
end 
secret.run_action(:create) 

In dem obigen Code wird die geheime Datei aus dem Repo files/default Position des Chef geladen.

Es ist jedoch ein Sicherheitsproblem, die geheime Datei in den Quellcode zu stellen. Also bitte lass es mich wissen, wenn es möglich ist, Chef cookbook_file Quelle in einem verschlüsselten Datenbeutel oder woanders zu speichern, anstatt im Chef Repo.

+0

Sie möchten das Geheimnis für Ihre verschlüsselte Daten-Tasche, die Ihr Geheimnis enthält, in einer verschlüsselten Daten-Tasche in einem geheimen Datenbeutel Geheimnis, was? Ich kenne den Workflow, dass das verschlüsselte Datenpaketgeheimnis nicht aus gutem Grund in die Versionskontrolle eingecheckt, sondern manuell zwischen Arbeitsstationen kopiert und während des Boostrappings auf die Knoten bereitgestellt wird ('Messer Bootstrap' kopiert die Datei IIRC automatisch). – StephenKing

+0

Siehe [die Standard-Bootstrap-Vorlage] (https://github.com/chef/chef/blob/a1e923cae62ea09c41bec46adc0b81a46d1ce27e/lib/chef/knife/bootstrap/templates/chef-full.erb#L198-L203). – StephenKing

Antwort

1
  • Speichern Sie die Daten Tasche Geheimnis (Datei) im Kennwortspeicher Ihres Unternehmens (oder übergeben Sie es manuell zwischen Ihnen und Ihren Kollegen.
  • knife[:secret_file] Geben Sie in der knife config Ihrer Workstations auf diese geheime Datei zu verweisen.
  • Verwenden knife bootstrap, die automatically copies the secret file an den Bootstrap-Knoten.

diesen Workflow verwenden, werden Sie in das Geheimnis in VCS überprüfen müssen nicht.

Alternativen sind chef-vault, die die PKI von Chef Server verwendet.

+0

Ich habe versucht, den Knoten zu starten, aber es kopiert nicht die geheime Datei. Bitte lassen Sie mich wissen, was möglicherweise fehlt – meallhour

+0

Spezifizieren Sie eine benutzerdefinierte Bootstrap-Vorlage? Hast du 'messer [: secret_file]' korrekt angegeben? – StephenKing

+0

Ich habe 'Messer [: Secret_file]' korrekt angegeben. Ich verwende derzeit ein 'validatorlessBootstrap.sh'-Skript, das von jemand anderem in meinem Team entwickelt wurde. Aber können Sie vorschlagen, welche Bootstrap Vorlage/Befehl ich verwenden sollte, um die geheime Datei zu kopieren? – meallhour

1

Stephen ergab die richtige Antwort und Sie sollen seine gehen akzeptieren, aber zum weiteren Klärung des „Warum“:

Wenn Sie das Daten Tasche Geheimnis setzen irgendwo innerhalb des Chefs Ökosystem (Kochbuch, Chef Server, was auch immer) es annulliert die bereits lächerlich minimale Sicherheit, die Sie bekommen. Die Idee von verschlüsselten Datensäcken ist es, einen Schlüsselaustausch außerhalb des Bandes zu erfordern, bevor Chefkoch seine Sache macht. Solange dieser Out-of-Band-Austausch sicher und vertrauenswürdig ist, kann Chef dies nutzen, um die Vertrauenskette um die verschlüsselten Taschenartikel zu erweitern. Wenn Sie beide Hälften (den Schlüssel und den verschlüsselten Blob) an derselben Stelle oder auf die gleiche Weise zugänglich machen, schließen Sie die gesamte Idee kurz.

+0

Vielen Dank für diese Antwort ..Ich habe versucht, einen Verschlüsselungsschlüssel zu übertragen, bevor mein Datenbeutelrezept ausgeführt wird und es immer wieder versagte. Jetzt ist mir klar, dass es wahrscheinlich gut ist, dass es nicht funktioniert. – Schylar