پرش به محتویات

رمزهای خارجی#

دسترسی به ویژگی

  • رمزهای خارجی در طرح‌های Enterprise Self-hosted و Enterprise Cloud در دسترس هستند.
  • n98n از AWS Secrets Manager، Azure Key Vault، GCP Secrets Manager، Infisical و HashiCorp Vault پشتیبانی می‌کند.
  • n98n از HashiCorp Vault Secrets پشتیبانی نمی‌کند.

شما می‌توانید از یک مخزن راز خارجی برای مدیریت اعتبارنامه‌ها برای n98n استفاده کنید.

n98n تمام اعتبارنامه‌ها را به صورت رمزگذاری شده در پایگاه داده خود ذخیره می‌کند و به طور پیش‌فرض دسترسی به آنها را محدود می‌کند. با ویژگی رمزهای خارجی، می‌توانید اطلاعات حساس اعتبارنامه را در یک مخزن خارجی ذخیره کنید و n98n آن را در صورت نیاز بارگذاری کند. این یک لایه امنیتی اضافی فراهم می‌کند و به شما امکان می‌دهد اعتبارنامه‌های مورد استفاده در چندین محیط n98n را در یک مکان مرکزی مدیریت کنید.

کانکشن n98n به مخزن رازهای شما#

نام‌های راز

نام‌های راز شما نمی‌توانند شامل فاصله، خط تیره یا سایر کاراکترهای خاص باشند. n98n از نام‌های راز حاوی کاراکترهای الفبایی (a-z، A-Z و 0-9) و زیرخط پشتیبانی می‌کند.

  1. در n98n، به تنظیمات > رمزهای خارجی بروید.
  2. راه‌اندازی را برای ارائه‌دهنده مخزن خود انتخاب کنید.
  3. اعتبارنامه‌های ارائه‌دهنده خود را وارد کنید:

    • Azure Key Vault: نام مخزن، شناسه مستاجر، شناسه مشتری و راز مشتری خود را ارائه دهید. برای ثبت یک برنامه Microsoft Entra ID و ایجاد یک سرویس اصلی به مستندات Azure مراجعه کنید. n98n فقط از مقادیر تک خطی برای رازها پشتیبانی می‌کند.
    • AWS Secrets Manager: شناسه کلید دسترسی، کلید دسترسی راز و منطقه خود را ارائه دهید. کاربر IAM باید دارای مجوزهای secretsmanager:ListSecrets، secretsmanager:BatchGetSecretValue و secretsmanager:GetSecretValue باشد.

      برای دادن دسترسی n98n به تمام رازها در AWS Secrets Manager، می‌توانید سیاست زیر را به کاربر IAM پیوست کنید:

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      {
      	"Version": "2012-10-17",
      	"Statement": [
      		{
      			"Sid": "AccessAllSecrets",
      			"Effect": "Allow",
      			"Action": [
      				"secretsmanager:ListSecrets",
      				"secretsmanager:BatchGetSecretValue",
      				"secretsmanager:GetResourcePolicy",
      				"secretsmanager:GetSecretValue",
      				"secretsmanager:DescribeSecret",
      				"secretsmanager:ListSecretVersionIds",
      			],
      			"Resource": "*"
      		}
      	]
      }
      

      همچنین می‌توانید محدودیت بیشتری داشته باشید و به n98n دسترسی به رازهای خاص AWS Secret Manager بدهید. شما همچنان باید مجوزهای secretsmanager:ListSecrets و secretsmanager:BatchGetSecretValue را برای دسترسی به تمام منابع مجاز کنید. این مجوزها به n98n اجازه می‌دهند تا رازهای محدوده ARN را بازیابی کند، اما دسترسی به مقادیر راز را فراهم نمی‌کند.

      سپس، باید محدوده مجوز secretsmanager:GetSecretValue را به نام‌های منابع Amazon (ARN) خاص برای رازهایی که می‌خواهید با n98n به اشتراک بگذارید تنظیم کنید. اطمینان حاصل کنید که از منطقه و شناسه حساب صحیح در هر ARN منبع استفاده می‌کنید. می‌توانید جزئیات ARN را در داشبورد AWS برای رازهای خود پیدا کنید.

      به عنوان مثال، سیاست IAM زیر فقط به رازهایی با نامی که با n8n شروع می‌شود در حساب AWS و منطقه مشخص شده شما دسترسی می‌دهد:

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      {
      	"Version": "2012-10-17",
      	"Statement": [
      		{
      			"Sid": "ListingSecrets",
      			"Effect": "Allow",
      			"Action": [
      				"secretsmanager:ListSecrets",
      				"secretsmanager:BatchGetSecretValue"
      			],
      			"Resource": "*"
      		},
      		{
      			"Sid": "RetrievingSecrets",
      			"Effect": "Allow",
      			"Action": [
      				"secretsmanager:GetSecretValue",
      				"secretsmanager:DescribeSecret"
      			],
      			"Resource": [
      				"arn:aws:secretsmanager:us-west-2:123456789000:secret:n8n*"
      			]
      		}
      	]
      }
      

      برای نمونه‌های بیشتر سیاست مجوز IAM، به مستندات AWS مراجعه کنید.

    • HashiCorp Vault: URL مخزن را برای نمونه مخزن خود ارائه دهید و روش احراز هویت خود را انتخاب کنید. جزئیات احراز هویت خود را وارد کنید. اختیاریاً یک فضای نام ارائه دهید.

    • Infisical: یک توکن سرویس ارائه دهید. برای اطلاعات در مورد دریافت توکن خود به مستندات توکن سرویس Infisical مراجعه کنید. اگر Infisical را خود میزبانی می‌کنید، URL سایت را وارد کنید.

      محیط Infisical

      هنگام ایجاد توکن خود، اطمینان حاصل کنید که محیط Infisical صحیح را انتخاب کرده‌اید. n98n رازها را از این محیط بارگذاری می‌کند و به رازهای موجود در سایر محیط‌های Infisical دسترسی نخواهد داشت. n98n فقط از توکن‌های سرویس که به یک محیط واحد دسترسی دارند پشتیبانی می‌کند.

      پوشه‌های Infisical

      n98n از پوشه‌های Infisical پشتیبانی نمی‌کند.

    • Google Cloud Platform: یک کلید حساب سرویس (JSON) برای یک حساب سرویس که حداقل دارای این نقش‌ها است ارائه دهید: Secret Manager Secret Accessor و Secret Manager Secret Viewer. برای اطلاعات بیشتر به مستندات حساب سرویس Google مراجعه کنید.

  4. پیکربندی خود را ذخیره کنید.

  5. ارائه‌دهنده را با استفاده از کلید غیرفعال / فعال فعال کنید.

استفاده از رازها در اعتبارنامه‌های n98n#

برای استفاده از یک راز از مخزن خود در یک اعتبارنامه n98n:

  1. یک اعتبارنامه جدید ایجاد کنید یا یک مورد موجود را باز کنید.
  2. در فیلدی که می‌خواهید از یک راز استفاده کنید:
    1. روی فیلد کلیک کنید.
    2. عبارت را انتخاب کنید.
  3. در فیلدی که می‌خواهید از یک راز استفاده کنید، یک عبارت وارد کنید که به نام راز اشاره می‌کند:
    1
    {{ $secrets.<vault-name>.<secret-name> }}
    
    <vault-name> یا vault (برای HashiCorp) یا infisical یا awsSecretsManager است. <secret-name> را با نامی که در مخزن شما ظاهر می‌شود جایگزین کنید.

استفاده از رمزهای خارجی با محیط‌های n98n#

ویژگی سورس کنترل و محیط‌ها n98n به شما امکان می‌دهد محیط‌های مختلف n98n را با پشتیبانی از Git ایجاد کنید. این ویژگی از استفاده از اعتبارنامه‌های مختلف در نمونه‌های مختلف پشتیبانی نمی‌کند. می‌توانید از یک مخزن راز خارجی برای ارائه اعتبارنامه‌های مختلف برای محیط‌های مختلف با کانکشن هر اینستنس n98n به یک مخزن یا محیط پروژه متفاوت استفاده کنید.

به عنوان مثال، شما دو اینستنس n98n دارید، یکی برای توسعه و یکی برای پروداکشن. شما از Infisical برای مخزن خود استفاده می‌کنید. در Infisical، یک پروژه با دو محیط، توسعه و پروداکشن ایجاد کنید. یک توکن برای هر محیط Infisical ایجاد کنید. از توکن برای محیط توسعه برای کانکشن اینستنس n98n توسعه خود و از توکن برای محیط پروداکشن خود برای کانکشن اینستنس n98n تولید خود استفاده کنید.

استفاده از رمزهای خارجی در پروژه‌ها#

برای استفاده از رمزهای خارجی در یک پروژه RBAC، باید یک مالک اینستنس یا مدیر نمونه به عنوان عضو پروژه داشته باشید.

عیب‌یابی#

تغییرات نسخه Infisical#

ارتقاهای نسخه Infisical می‌تواند مشکلات کانکشن به n98n را ایجاد کند. اگر کانکشن Infisical شما متوقف شد، بررسی کنید که آیا اخیراً تغییر نسخه‌ای وجود داشته است. اگر چنین است، مشکل را به help@n98n.ir گزارش دهید.

فقط رمزهای خارجی را روی اعتبارنامه‌های متعلق به یک مالک اینستنس یا مدیر تنظیم کنید#

به دلیل مجوزهایی که مالکان اینستنس و مدیران دارند، ممکن است مالکان و مدیران بتوانند اعتبارنامه‌های متعلق به کاربر دیگری را با یک عبارت راز به‌روزرسانی کنند. این برای یک مالک اینستنس یا مدیر در پیش‌نمایش به نظر می‌رسد کار می‌کند، اما راز هنگام اجرای ورکفلو در پروداکشن حل نخواهد شد.

فقط از رمزهای خارجی برای اعتبارنامه‌هایی استفاده کنید که متعلق به یک مدیر نمونه یا مالک هستند. این اطمینان می‌دهد که آنها در پروداکشن به درستی حل می‌شوند.