Terraform-provider-local: يجب ألا يطبع local_file معلومات حساسة في المخرجات إذا كانت حساسة = صواب

تم إنشاؤها على ٢٢ أغسطس ٢٠١٨  ·  14تعليقات  ·  مصدر: hashicorp/terraform-provider-local

_تم فتح هذا الإصدار في الأصل بواسطة mtheus باعتباره hashicorp / terraform # 18718. تم ترحيله هنا كنتيجة لتقسيم الموفر . النص الأصلي للمشكلة أدناه.


نسخة Terraform

Terraform v0.11.8

ملفات تكوين Terraform

resource "local_file" "kubeconfig" {
    sensitive = true
    content  = "${data.terraform_remote_state.kubernetes.kubeconfig}"
    filename = ".kube/config"
}

إخراج التصحيح

سلوك متوقع

لا يبدو أن المعلومات الحساسة واردة في المخرجات

السلوك الفعلي

data.terraform_remote_state.kubernetes: Refreshing state...
local_file.kubeconfig: Creating...
  content:  "" => "\n\napiVersion: v1\nclusters:\n- cluster:\n    server: https://**<SENSIVE>**.sk1.us-east-1.eks.amazonaws.com\n    certificate-authority-data: LS0tLS1C**<SENSIVE>**\n  name: kubernetes\ncontexts:\n- context:\n    cluster: kubernetes\n    user: aws\n  name: aws\ncurrent-context: aws\nkind: Config\npreferences: {}\nusers:\n- name: aws\n  user:\n    exec:\n      apiVersion: client.authentication.k8s.io/v1alpha1\n      command: aws-iam-authenticator\n      args:\n        - \"token\"\n        - \"-i\"\n        - \"latam\"\n"
  filename: "" => ".kube/config"
local_file.kubeconfig: Creation complete after 0s (ID: 73a74cc24de6ebfe8304a9b889415884fd819390)

خطوات التكاثر

  1. terraform init
  2. terraform apply

مكمل

يجب أن تنطبق في جميع المكونات التي تطبع المخرجات

التعليق الأكثر فائدة

https://github.com/terraform-providers/terraform-provider-local/releases/tag/v1.2.0 انتهى الآن ، مما يضيف دعمًا لـ sensitive_content ، لذلك أعتقد أنه يمكن إغلاق هذه المشكلة الآن.

ال 14 كومينتر

الكود الموجود على الجهاز الرئيسي ينفذ حلاً: sensitve_content . وهو ما لا يتوافق مع بقية موارد التضاريس ولكنه على الأقل حل.

ومع ذلك ، يبدو أنه غير متوفر بعد في Terraform v0.11.10 و Provider.local v1.1.0.

تم تنفيذ هذا في # 9 مرة أخرى في مارس 2018 ، ولكن لم يتم إصداره بعد.

alewando آسف لبطء الاستجابة هنا! كان الفريق الأساسي يعمل بشكل مباشر على إصدار terraform 0.12 ولسوء الحظ تم إهمال بعض الأشياء (مثل هذا المزود!) نتيجة لذلك.

سأضع إشارة مرجعية على هذا لتذكير نفسي بالمرور عبر العلاقات العامة المعلقة ونشر إصدار. نشكرك على العمل على حل هذه المشكلة تحديدًا ، ونشكرك على سعة صدرك!

mildwonkey هل هناك أي فرصة للحصول على تخفيض في الإصدار؟ يمكننا تفرع وإصدار إصدار جديد ولكنه يتطلب حمولة من لوح الغلاية في تنسيق Terraform لسحب مكون إضافي مخصص.

mildwonkey مرة أخرى ، أطالب بالإفراج. إنه فوز سهل ويمكن أن يساعدنا كثيرًا.

mildwonkey أعتقد أيضًا أن هذه ستكون ميزة رائعة ، وأتطلع إلى إصدارها. 🙂

بالنسبة لأولئك الذين يبحثون عن بديل مؤقت ، هذا ما فعلته لتصدير بيانات اعتماد لقواعد بيانات RDS متعددة (لدي خريطة لقاعدة البيانات / كلمة المرور وكلمة مرور رئيسية):

locals {
  databases = "${keys(var.shared_db_databases_passwords)}"
  manual_output = {
    endpoint  = "${module.shared_database.database_endpoint}"
    username  = "myusername"
    password  = "${var.shared_db_master_password}"
    port      = 5432
    databases = "${local.databases}"
    passwords = "${values(var.shared_db_databases_passwords)}"
  }
}

resource "null_resource" "manual_output" {
  triggers {
    databases = "${join(",", local.databases)}"
  }

  provisioner "local-exec" {
    command = "echo $DATA > manual_output.json"
    environment {
      DATA = "${jsonencode(local.manual_output)}" # Necessary to hide outputs
    }
  }
}

https://github.com/terraform-providers/terraform-provider-local/releases/tag/v1.2.0 انتهى الآن ، مما يضيف دعمًا لـ sensitive_content ، لذلك أعتقد أنه يمكن إغلاق هذه المشكلة الآن.

invidian شكرا!

يجب أن يدعم مصدر البيانات local_file أيضًا sensitive_content

ShahNewazKhan هل تقول أنه يجب أن تكون هناك سمة sensitive_content $ لمصدر البيانات local_file ؟ إذا كان الأمر كذلك ، فما هي حالة استخدام هذا؟

unacceptable تخيل أنك تقوم بتعيين محتوى مورد local_file بطريقة مختلفة عن إنشاء مورد local_file (أو أنك تريد فقط قراءة ملف موجود). إذا كان هذا المحتوى حساسًا في المقام الأول ، فستحتاج إلى الوصول إليه دون إظهاره مباشرةً في الإخراج أو في tfstate.

أعتقد أن وجود هذه الوظيفة منطقي. يمكن أن يحتوي مصدر بيانات local_file sensitive_filename معلمة $ # $ 1 $ # $ ، مما يشير إلى أنه يجب وضع المحتوى في خاصية sensitive_content بدلاً من contentcontent_base64 ). ومع ذلك ، هذا يبدو وكأنه اقتراح ميزة جديدة. ربما يجب أن نخلق قضية أخرى لمعالجتها؟

لقد قمت للتو بإنشائه هنا:
https://github.com/terraform-providers/terraform-provider-local/issues/36

أعتقد أن الخيار يجب أن يكون موجودًا في بنية البيانات ، لذلك سيكون من الممكن ليس فقط الحصول على محتوى حساس من الملفات المحددة من خلال موارد الملف المحلي ولكن أيضًا الحصول عليه من الملفات الموجودة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات