کار کردن با نقشه‌های مقدار کلید

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

زمان‌هایی وجود دارد که می‌خواهید داده‌ها را برای بازیابی در زمان اجرا ذخیره کنید—داده‌های منقضی‌نشده که نباید در منطق پراکسی API شما کدبندی سخت شوند. نقشه‌های مقدار کلیدی (KVM) برای این کار ایده‌آل هستند. ‫A ‫KVM مجموعه‌ای سفارشی از جفت‌های کلید/مقدار «رشته» است که یا رمزگذاری‌شده است یا رمزگذاری‌نشده. در اینجا دو مثال آورده شده است:

برای آشنایی با انواع دیگر ماندگاری، به افزودن ذخیره در حافظه نهان و ماندگاری مراجعه کنید.

سناریوهای KVM

در اینجا چند موقعیت که KVM مفید است آورده شده است:

  • کارگزار نیابتی API دارید که باید یک نشانی وب هدف (یا «فراخوانی سرویس») را در محیط آزمایش و نشانی وب هدف دیگری را در محیط تولید فراخوانی کند. به‌جای کدبندی سخت نشانی‌های وب در کارگزار وکالتی، می‌توانید کارگزار وکالتی را طوری تنظیم کنید که محیطی را که در آن قرار دارد تشخیص دهد، خط‌مشی «عملیات نقشه مقدار کلید» مربوطه را اجرا کند، و نشانی وب مقصد صحیح را از یکی از KVMهایی که ایجاد کرده‌اید بازیابی کند. و بعداً، اگر یک یا هر دو هدف شما تغییر کند، به‌سادگی «ماشین‌های مقدار کلید» را با نشانی‌های وب جدید به‌روزرسانی می‌کنید. کارگزار مقادیر جدید را دریافت می‌کند و بازاستقرار کارگزار لازم نیست.
  • می‌خواهید اعتبارنامه‌ها، کلیدهای خصوصی، یا ژتون‌ها را ذخیره کنید—مثل ژتون‌های سرویس‌های خارجی، اعتبارنامه‌های لازم برای تولید ژتون‌های OAuth، یا کلیدهای خصوصی مورد استفاده در «فراخوانی‌های Java» یا JavaScript برای رمزگذاری یا امضای «ژتون وب JSON» (JWT). به‌جای اینکه اعتبارنامه، کلید، یا کد در درخواست ارسال کنید، یا آن‌ها را در منطق کارگزار وکالتی خود کدبندی سخت کنید، می‌توانید آن‌ها را در KVM (همیشه رمزگذاری‌شده) ذخیره کنید و به‌صورت پویا در تماس با هدف‌هایی که به آن‌ها نیاز دارند بازیابی کنید.

موقعیت‌های دیگری را کشف خواهید کرد که در آن‌ها ذخیره کردن جفت‌های کلید/مقدار «رشته» مفید است. به‌طورکلی، در موارد زیر از KVM استفاده کنید:

  • مکان‌های خاصی در کد شما در زمان اجرا به مقادیر مختلفی نیاز دارند.
  • داده‌های حساس باید بدون کدبندی سخت منتقل شوند.
  • می‌خواهید مقادیری را ذخیره کنید که مثل حافظه نهان منقضی نمی‌شوند.

‫KVMها محدوده دارند

«محدوده» یعنی «جایی که KVM دردسترس است». «ماشین‌های مجازی مبتنی بر هسته» را می‌توان در محدوده‌های زیر ایجاد کرد: organization،‏ environment، و apiproxy.

برای مثال، اگر فقط یک پراکسی API به داده‌های موجود در KVM نیاز داشته باشد، می‌توانید KVM را در apiproxy محدوده ایجاد کنید، جایی که فقط آن پراکسی API می‌تواند به داده‌ها دسترسی داشته باشد.

یا ممکن است بخواهید همه پراکسی‌های API در محیط آزمایش شما به نقشه مقدار کلید دسترسی داشته باشند، در این صورت نقشه مقدار کلید را در محدوده محیط ایجاد می‌کنید. پراکسی‌های مستقر در محیط «prod» نمی‌توانند به KVMهای موجود در محدوده محیط «test» دسترسی داشته باشند. اگر می‌خواهید همان کلیدهای KVM در نسخه تولید دردسترس باشد، KVM موازی با محدوده محیط «prod» بسازید.

اگر می‌خواهید همه پراکسی‌ها در همه محیط‌ها به KVM یکسانی دسترسی داشته باشند، KVM را در organization محدوده ایجاد کنید.

درباره KVM رمزگذاری‌شده

‫KVM رمزگذاری‌شده با کلید رمز AES-128 تولیدشده توسط Apigee رمزگذاری می‌شود. کلید استفاده‌شده برای رمزگذاری KVM در محدوده KVM ذخیره می‌شود. برای مثال، در یک سازمان، همه KVM رمزگذاری‌شده‌ای که در محدوده محیط ایجاد می‌کنید بااستفاده از کلید محدوده محیط یکسان ایجاد می‌شوند.

‫Edge نمایش مقادیر رمزگذاری‌شده را به روش‌های زیر مدیریت می‌کند. (برای کسب اطلاعات درباره ایجاد KVM رمزگذاری‌شده، به مدیریت و استفاده از KVM مراجعه کنید.)

میانای کاربر Edge

نقشه‌های مقدار کلید رمزگذاری‌شده مقادیر نمایش را با ستاره در میانای کاربر پوشانده‌اند (*****). برای مثال:

میانای برنامه‌سازی کاربردی مدیریت

در «میانای برنامه‌سازی کاربردی مدیریت»، مقادیر رمزگذاری‌شده به‌صورت پوشانده‌شده برگردانده می‌شوند. در زیر نمونه‌ای از مدیریت پاسخ API در تماس «دریافت KVM رمزگذاری‌شده» آمده است:

{
  "encrypted": true,
  "entry": [
    {
      "name": "Key1",
      "value": "*****"
    },
    {
      "name": "Key2",
      "value": "*****"
    }
  ],
  "name": "secretMap"
}

ردیابی و اشکال‌زدایی

وقتی از خط‌مشی عملیات نقشه مقدار کلید برای بازیابی مقادیر KVM رمزگذاری‌شده استفاده می‌کنید، نام متغیری را برای ذخیره کردن مقدار ارائه می‌کنید. برای دریافت مقدار رمزگذاری‌شده، باید پیشوند «private.» را به نام متغیر اضافه کنید، که از ظاهر شدن کلیدها/مقادیر KVM در جلسات «ردیابی» و «اشکال‌زدایی» جلوگیری می‌کند.

محدودیت‌ها

در سازمان‌هایی که خدمات ماندگاری اصلی (CPS) فعال است:

  • نام/شناسه KVM حروف‌حساس است.
  • اندازه کلید به ۲ کیلوبایت محدود است.
  • اندازه مقدار به ۱۰ کیلوبایت محدود می‌شود.

برای Apigee Edge for Private Cloud، هر KVM نباید از ۱۵ مگابایت بیشتر باشد (این اندازه ترکیبی کلیدها و مقادیر است). اگر از این حد مجاز فراتر بروید، Apigee Edge for Private Cloud خطا برمی‌گرداند. برای تعیین اندازه KVM، می‌توانید از فرمان nodetool cfstats استفاده کنید.

‫KVMهای بزرگ‌تر می‌تواند منجر به کاهش عملکرد شود. در نتیجه، باید KVMهای بزرگ و یکپارچه را به KVMهای کوچک‌تر تقسیم کنید تا عملکرد بهبود یابد.

مدیریت و استفاده از KVM

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

ایجاد و به‌روزرسانی KVM

می‌توانید KVM را به روش‌های زیر ایجاد و به‌روز کنید:

  • خط‌مشی عملیات نقشه مقدار کلید (بدون رمزگذاری)

    برای ایجاد و به‌روزرسانی KVM در زمان اجرا توسط پراکسی‌های API، از خط‌مشی عملیات نقشه مقدار کلید استفاده کنید. (در خط‌مشی، نام KVM را در مشخصه mapIdentifier در عنصر والد مشخص می‌کنید.)

    عنصر <InitialEntries> به شما امکان می‌دهد به‌محض اینکه خط‌مشی را در واسط کاربر ذخیره کردید یا پراکسی API را مستقر کردید (اگر آن را به‌صورت آفلاین توسعه داده‌اید)، مجموعه پایه ورودی‌ها را در KVM جدید ایجاد و تکمیل کنید. اگر مقادیر در خط‌مشی تغییر کند، مقادیر موجود رونویسی می‌شوند. هر کلید/مقدار جدیدی به KVM موجود در کنار کلیدها/مقدارهای موجود اضافه می‌شود.

    عنصر <Put> اگر KVM ازقبل وجود نداشته باشد، KVM جدیدی ایجاد می‌کند و کلیدی با یک یا چند مقدار ایجاد می‌کند. اگر KVM ازقبل وجود داشته باشد، کلید/مقادیر اضافه می‌شود (یا اگر کلید ازقبل وجود داشته باشد، به‌روز می‌شود). می‌توانید از چندین عنصر <Put> در خط‌مشی KVM استفاده کنید.

  • Management API

    میانای برنامه‌سازی کاربردی مدیریت برای کار با KVM به‌عنوان سرپرست است نه در زمان اجرا در پراکسی‌های API. برای مثال، ممکن است یک دستورگان داخلی داشته باشید که از «میانای برنامه‌سازی کاربردی مدیریت» برای حذف و بازآفرینی KVM در محیط آزمایش استفاده می‌کند، یا ممکن است بخواهید مقدار کلید را در KVM برای همه پراکسی‌ها بازنشانی کنید. (برای دستکاری زمان اجرای KVM، از خط‌مشی عملیات نقشه مقدار کلید در پراکسی‌هایتان استفاده کنید).

    میانای برنامه‌سازی کاربردی مدیریت «نقشه‌های کلید/مقدار» به شما امکان می‌دهد KVMهای رمزگذاری‌شده و کلیدها/مقادیر را در همه حوزه‌ها (سازمان، محیط، و apiproxy) ایجاد، به‌روزرسانی، و حذف کنید.

    برای ایجاد KVM رمزگذاری‌شده با میانای برنامه‌سازی کاربردی مدیریت، "encrypted" : "true" را به بار JSON اضافه کنید. فقط هنگام ایجاد KVM می‌توانید آن‌ها را رمزگذاری کنید. نمی‌توانید KVM موجود را رمزگذاری کنید.

  • میانای کاربر مدیریت

    در «میانای کاربر مدیریت Edge»، می‌توانید KVMهای با محدوده محیط را ایجاد و به‌روز کنید، که تنها محدوده KVM است که در میانای کاربر نشان داده می‌شود. «میانای کاربر مدیریت» روش خوبی برای مدیریت دستی داده‌های KVM برای پراکسی‌های API در زمان اجرا است. برای کسب اطلاعات بیشتر، ایجاد و ویرایش کردن نقشه‌های مقدار کلید محیط را ببینید.

درحال بازیابی KVM

نقشه‌های مقدار کلید رمزگذاری‌شده و رمزگذاری‌نشده را به یک روش بازیابی می‌کنید، با یک تفاوت جزئی هنگام بازیابی با خط‌مشی عملیات نقشه مقدار کلید.

  • خط‌مشی: از عنصر <Get> در خط‌مشی عملیات نقشه مقدار کلید برای بازیابی KVMهای رمزگذاری‌شده و رمزگذاری‌نشده استفاده کنید. تنها تفاوت جزئی در بازیابی مقادیر رمزگذاری‌شده با خط‌مشی است، در این حالت باید پیشوند «private.» به نام متغیری که مقدار بازیابی‌شده را دربرمی‌گیرد اضافه کنید، همان‌طور که در بخش عملیات دریافت موضوع مرجع توضیح داده شده است. این پیشوند مقدار را از جلسات «ردیابی و اشکال‌زدایی» درطول اشکال‌زدایی کارگزاران پراکسی API پنهان می‌کند.
  • میانای برنامه‌سازی کاربردی مدیریت: برای اهداف مدیریت اداری، می‌توانید از ایجاد و ویرایش کردن نقشه‌های مقدار کلید محیط برای دریافت KVM و کلیدها/مقادیر استفاده کنید. برای مثال، اگر می‌خواهید با دریافت و ذخیره تعاریف JSON از KVM پشتیبان‌گیری کنید، از API مدیریت استفاده کنید. بااین‌حال، توجه داشته باشید که مقادیر رمزگذاری‌شده در پاسخ API به‌صورت ***** نمایش داده می‌شوند.
  • واسط کاربر مدیریت: با رفتن به واسط‌های برنامه‌سازی کاربردی > پیکربندی محیط > نقشه‌های مقدار کلید (Classic Edge) یا سرپرست > محیط‌ها > نقشه‌های مقدار کلید (New Edge)، می‌توانید KVMهای با محدوده محیط را در واسط کاربر مدیریت مشاهده کنید.

مثال KVM

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