پیکربندی Apigee mTLS

پس‌از نصب Apigee mTLS در همه گره‌های خوشه، باید عنصر apigee-mtls را پیکربندی و مقداردهی اولیه کنید. این کار را با تولید یک جفت گواهی/کلید و به‌روزرسانی فایل پیکربندی در دستگاه مدیریت خود انجام می‌دهید. سپس فایل‌های تولیدشده و فایل پیکربندی یکسانی را در همه گره‌های خوشه مستقر می‌کنید و apigee-mtls مؤلفه محلی را مقداردهی اولیه می‌کنید.

پیکربندی apigee-mtls (پس‌از نصب اولیه)

این بخش نحوه پیکربندی مستقیم Apigee mTLS را پس‌از نصب اولیه توضیح می‌دهد. برای کسب اطلاعات درباره به‌روزرسانی نصب موجود Apigee mTLS، به تغییر پیکربندی موجود apigee-mtls مراجعه کنید.

این بخش برای نصب در یک مرکز داده واحد اعمال می‌شود. برای کسب اطلاعات درباره پیکربندی Apigee mTLS در تنظیمات چند مرکز داده، پیکربندی چند مرکز داده برای Apigee mTLS را ببینید.

فرایند کلی پیکربندی apigee-mtls به این صورت است:

  1. به‌روزرسانی فایل پیکربندی: در دستگاه مدیریت، فایل پیکربندی را به‌روز کنید تا تنظیمات apigee-mtls را دربر بگیرد.
  2. نصب Consul و تولید اطلاعات اعتباری: Consul را نصب کنید و (اختیاری) از آن برای تولید اطلاعات اعتباری TLS (فقط یک‌بار) استفاده کنید.

    علاوه‌براین، فایل پیکربندی Apigee mTLS را ویرایش کنید تا:

    1. اطلاعات اعتبارنامه را اضافه کنید
    2. تعریف توپولوژی خوشه

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

  3. توزیع اطلاعات اعتباری و فایل پیکربندی: جفت گواهی/کلید تولیدشده یکسان و فایل پیکربندی به‌روزشده را در همه گره‌های خوشه‌تان توزیع کنید.
  4. Initialize apigee-mtls: عنصر apigee-mtls را در هر گره مقداردهی اولیه کنید.

هریک از این مراحل در بخش‌های بعدی توضیح داده شده است.

مرحله ۱: به‌روزرسانی فایل پیکربندی

این بخش نحوه اصلاح فایل پیکربندی برای افزودن دارایی‌های پیکربندی mTLS را توضیح می‌دهد. برای اطلاعات کلی بیشتر درباره فایل پیکربندی، ایجاد فایل پیکربندی را ببینید.

پس‌از به‌روزرسانی فایل پیکربندی با دارایی‌های مربوط به mTLS، آن را در همه گره‌های خوشه کپی کنید و سپس مؤلفه apigee-mtls را در آن گره‌ها مقداردهی اولیه کنید.

برای به‌روزرسانی فایل پیکربندی:

  1. در دستگاه مدیریت، فایل پیکربندی را برای ویرایش باز کنید.
  2. مجموعه زیر از دارایی‌های پیکربندی mTLS را کپی کنید و آن‌ها را در فایل پیکربندی جای‌گذاری کنید:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"

    مقدار هر دارایی را تنظیم کنید تا با پیکربندی شما هماهنگ شود.

    جدول زیر این ویژگی‌های پیکربندی را شرح می‌دهد:

    دارایی شرح
    ALL_IP فهرستی از نشانی‌های IP میزبان خصوصی همه گره‌های خوشه که با فاصله از هم جدا شده‌اند.

    ترتیب نشانی‌های IP مهم نیست، فقط باید در همه فایل‌های پیکربندی در سراسر خوشه یکسان باشد.

    اگر Apigee mTLS را برای چندین مرکز داده پیکربندی می‌کنید، همه نشانی‌های IP را برای همه میزبان‌ها در همه مناطق فهرست کنید.

    LDAP_MTLS_HOSTS نشانی IP میزبان خصوصی گره SymasLDAP در خوشه.
    ZK_MTLS_HOSTS

    فهرست نشانی‌های IP میزبان خصوصی که با فاصله از هم جدا شده‌اند و گره‌های ZooKeeper در آن‌ها میزبانی می‌شوند در خوشه.

    توجه داشته باشید که براساس الزامات، باید حداقل سه گره ZooKeeper وجود داشته باشد.

    CASS_MTLS_HOSTS فهرستی از نشانی‌های IP میزبان خصوصی که سرورهای Cassandra در آن میزبانی می‌شوند در خوشه.
    PG_MTLS_HOSTS فهرست نشانی‌های IP میزبان خصوصی که با فاصله از هم جدا شده‌اند و سرورهای Postgres در آن‌ها میزبانی می‌شوند در خوشه.
    RT_MTLS_HOSTS فهرستی از نشانی‌های IP میزبان خصوصی که با فاصله از هم جدا شده‌اند و «مسیریاب‌ها» در خوشه میزبانی می‌شوند.
    MTLS_ENCAPSULATE_LDAP ترافیک LDAP بین «پردازشگر پیام» و سرور LDAP را رمزگذاری می‌کند. روی y تنظیم شد.
    MS_MTLS_HOSTS فهرستی از نشانی‌های IP میزبان خصوصی که با فاصله از هم جدا شده‌اند و گره‌های «سرور مدیریت» در آن در خوشه میزبانی می‌شوند.
    MP_MTLS_HOSTS فهرست نشانی‌های IP میزبان خصوصی که با فاصله از هم جدا شده‌اند و «پردازشگرهای پیام» در خوشه روی آن‌ها میزبانی می‌شوند.
    QP_MTLS_HOSTS فهرست نشانی‌های IP میزبان خصوصی که با فاصله از هم جدا شده‌اند و سرورهای Qpid در آن‌ها در خوشه میزبانی می‌شوند.
    ENABLE_SIDECAR_PROXY تعیین می‌کند که آیا Cassandra و Postgres باید از شبکه خدمات مطلع باشند یا نه.

    باید این مقدار را روی «y» تنظیم کنید.

    ENCRYPT_DATA کلید رمزگذاری کدبندی‌شده با base64 که Consul استفاده می‌کند. این کلید را بااستفاده از فرمان consul keygen در مرحله ۲: نصب Consul و تولید کردن اطلاعات اعتباری تولید کردید.

    این مقدار باید در همه گره‌های خوشه یکسان باشد.

    PATH_TO_CA_CERT مکان فایل گواهینامه در گره. این فایل را در مرحله ۲: نصب Consul و تولید اطلاعات اعتباری تولید کردید.

    این مکان باید در همه گره‌های خوشه یکسان باشد تا فایل‌های پیکربندی یکسان باشند.

    گواهی باید با X509v3 کدبندی شده باشد.

    PATH_TO_CA_KEY مکان فایل کلید در گره. این فایل را در مرحله ۲: نصب Consul و تولید اطلاعات اعتباری تولید کردید.

    این مکان باید در همه گره‌های خوشه یکسان باشد تا فایل‌های پیکربندی یکسان باشند.

    فایل کلید باید با X509v3 کدبندی شده باشد.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    تعداد روزهایی که گواهینامه هنگام تولید گواهینامه سفارشی معتبر است.

    مقدار پیش‌فرض ۳۶۵ است. حداکثر مقدار ۷۸۶۵ روز (۵ سال) است.

    علاوه‌بر دارایی‌های فهرست‌شده در بالا، وقتی Apigee mTLS را در پیکربندی چند مرکز داده نصب می‌کنید، از چندین دارایی اضافی استفاده می‌کند. برای اطلاعات بیشتر، پیکربندی چندین مرکز داده را ببینید.

  3. مطمئن شوید که ENABLE_SIDECAR_PROXY روی «y» تنظیم شده باشد.
  4. نشانی‌های IP را در دارایی‌های مربوط به میزبان به‌روز کنید. هنگام ارجاع به هر گره، حتماً از نشانی‌های IP خصوصی استفاده کنید، نه از نشانی‌های IP عمومی.

    در مراحل بعدی، مقادیر دارایی‌های دیگر مثل ENCRYPT_DATA،‏ PATH_TO_CA_CERT، و PATH_TO_CA_KEY را تنظیم خواهید کرد. هنوز مقادیر آن‌ها را تنظیم نکرده‌اید.

    هنگام ویرایش کردن مشخصه‌های پیکربندی apigee-mtls، به موارد زیر توجه کنید:

    • همه دارایی‌ها رشته هستند؛ باید مقادیر همه دارایی‌ها را در نقل‌قول‌های تکی یا دوتایی بپیچید.
    • اگر مقدار مربوط به میزبان بیش‌از یک نشانی IP خصوصی دارد، هر نشانی IP را با فاصله از دیگری جدا کنید.
    • برای همه دارایی‌های مربوط به میزبان در فایل پیکربندی، از نشانی‌های IP خصوصی استفاده کنید و از نام میزبان یا نشانی‌های IP عمومی استفاده نکنید.
    • ترتیب نشانی‌های IP در مقدار دارایی باید در همه فایل‌های پیکربندی در سراسر خوشه یکسان باشد.
  5. تغییرات را در فایل پیکربندی ذخیره کنید.

مرحله ۲: نصب Consul و تولید اطلاعات اعتباری

این بخش نحوه نصب Consul و تولید اعتبارنامه‌هایی را که توسط عناصر فعال mTLS استفاده می‌شوند شرح می‌دهد.

باید یکی از روش‌های زیر را برای تولید اطلاعات اعتباری خود انتخاب کنید:

  • (توصیه می‌شود) «مرجع صدور گواهی» (CA) خودتان را بااستفاده از Consul ایجاد کنید، همان‌طور که در این بخش توضیح داده شده است
  • استفاده از اطلاعات اعتباری «مرجع صدور گواهینامه» موجود با Apigee mTLS (پیشرفته)

درباره اعتبارنامه‌ها

اطلاعات اعتباری شامل موارد زیر است:

  • گواهینامه: گواهینامه «امنیت لایه انتقال»
  • کلید: کلید عمومی «امنیت لایه انتقال»
  • پیام شایعه: کلید رمزگذاری کدبندی‌شده با ۶۴پایه

فقط یک‌بار یک نسخه از هریک از این فایل‌ها تولید می‌کنید. سپس فایل‌های کلید و گواهینامه را در همه گره‌های خوشه کپی می‌کنید و کلید رمزگذاری را به فایل پیکربندی که آن را نیز در همه گره‌ها کپی می‌کنید اضافه می‌کنید.

برای کسب اطلاعات بیشتر درباره پیاده‌سازی رمزگذاری Consul، به موارد زیر مراجعه کنید:

نصب Consul و تولید اطلاعات اعتباری

برای تولید کردن اطلاعات اعتباری که Apigee mTLS برای احراز هویت ارتباطات امن بین گره‌های خوشه «ابر خصوصی» شما استفاده می‌کند، از باینری Consul محلی استفاده کنید . درنتیجه، قبل‌از اینکه بتوانید اطلاعات اعتباری تولید کنید، باید Consul را در دستگاه مدیریت خود نصب کنید.

برای نصب Consul و تولید اطلاعات اعتباری mTLS:

  1. در ماشین مدیریت، باینری Consul 1.8.0 را از وب‌سایت HashiCorp بارگیری کنید.
  2. محتویات فایل بایگانی بارگیری‌شده را استخراج کنید. برای مثال، محتوا را در /opt/consul/ استخراج کنید.
  3. در دستگاه مدیریت خود، با اجرای فرمان زیر، «مرجع صدور گواهی» (CA) جدیدی ایجاد کنید:
    /opt/consul/consul tls ca create

    ‫Consul فایل‌های زیر را ایجاد می‌کند که جفت گواهینامه/کلید را تشکیل می‌دهند:

    • ‫consul-agent-ca.pem (گواهینامه)
    • ‫consul-agent-ca-key.pem (کلید)

    به‌طور پیش‌فرض، فایل‌های گواهی و کلید با X509v3 کدبندی می‌شوند.

    بعداً این فایل‌ها را در همه گره‌های خوشه کپی خواهید کرد. بااین‌حال، در این مرحله، باید فقط تصمیم بگیرید که این فایل‌ها را در کجا در گره‌ها قرار دهید. باید در مکان یکسانی در هر گره باشند. برای مثال، /opt/apigee/.

  4. در فایل پیکربندی، مقدار PATH_TO_CA_CERT را روی مکانی تنظیم کنید که فایل consul-agent-ca.pem را در گره در آن کپی خواهید کرد. برای مثال:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. مقدار PATH_TO_CA_KEY را روی مکانی تنظیم کنید که فایل consul-agent-ca-key.pem را در گره در آن کپی خواهید کرد. برای مثال:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. با اجرای فرمان زیر، کلید رمزگذاری برای Consul ایجاد کنید:
    /opt/consul/consul keygen

    ‫Consul رشته‌ای تصادفی‌سازی‌شده را برونداد می‌کند که شبیه به رشته زیر است:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. این رشته تولیدشده را کپی کنید و آن را به‌عنوان مقدار دارایی ENCRYPT_DATA در فایل پیکربندی‌تان تنظیم کنید. برای مثال:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. فایل پیکربندی را ذخیره کنید.

مثال زیر تنظیمات مربوط به mTLS را در فایل پیکربندی (با مقادیر نمونه) نشان می‌دهد:

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

مرحله ۳: توزیع فایل پیکربندی و اطلاعات اعتباری

فایل‌های زیر را بااستفاده از ابزاری مثل scp در همه گره‌ها کپی کنید:

  • فایل پیکربندی: نسخه به‌روزشده این فایل را کپی کنید و آن را جایگزین نسخه موجود در همه گره‌ها کنید (نه فقط گره‌هایی که ZooKeeper را اجرا می‌کنند).
  • consul-agent-ca.pem: آن را در مکانی که به‌عنوان مقدار PATH_TO_CA_CERT در فایل پیکربندی مشخص کرده‌اید کپی کنید.
  • consul-agent-ca-key.pem: آن را در مکانی که به‌عنوان مقدار PATH_TO_CA_KEY در فایل پیکربندی مشخص کرده‌اید کپی کنید.

مطمئن شوید مکان‌هایی که فایل‌های گواهینامه و کلید را در آن‌ها کپی می‌کنید با مقادیر تنظیم‌شده در فایل پیکربندی در مرحله ۲: نصب Consul و تولید اطلاعات اعتباری مطابقت داشته باشد.

مرحله ۴: مقداردهی اولیه apigee-mtls

پس‌از نصب apigee-mtls در هر گره، به‌روزرسانی فایل پیکربندی، و کپی کردن آن و اطلاعات اعتباری در همه گره‌های خوشه، آماده‌اید تا عنصر apigee-mtls را در هر گره مقداردهی اولیه کنید.

برای مقداردهی اولیه apigee-mtls:

  1. به‌عنوان کاربر ریشه به سیستم یکی از گره‌های خوشه وارد شوید. می‌توانید این مراحل را روی گره‌ها به هر ترتیبی که می‌خواهید انجام دهید.
  2. کاربر apigee:apigee را مالک فایل پیکربندی به‌روزشده کنید، همان‌طور که مثال زیر نشان می‌دهد:
    chown apigee:apigee config_file
  3. با اجرای فرمان زیر، عنصر apigee-mtls را پیکربندی کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (اختیاری) دستور زیر را اجرا کنید تا مطمئن شوید راه‌اندازی شما موفقیت‌آمیز بوده است:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. با اجرای فرمان زیر، Apigee mTLS را شروع کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    پس‌از نصب Apigee mTLS، باید این عنصر را قبل‌از هر عنصر دیگری در گره شروع کنید.

  6. (فقط گره‌های Cassandra) Cassandra برای کار کردن در شبکه امنیتی به آرگومان‌های بیشتری نیاز دارد. در نتیجه، باید فرمان‌های زیر را در هر گره Cassandra اجرا کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (فقط گره‌های Postgres) برای کار کردن در شبکه امنیتی، Postgres به آرگومان‌های اضافی نیاز دارد. در نتیجه، باید کارهای زیر را در گره‌های Postgres انجام دهید:

    (فقط اصلی)

    1. فرمان‌های زیر را در گره اصلی Postgres اجرا کنید:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (فقط آماده‌به‌کار)

    1. از داده‌های Postgres موجودتان پشتیبان‌گیری کنید. برای نصب Apigee mTLS، باید گره‌های اصلی/آماده‌به‌کار را دوباره مقداردهی اولیه کنید، بنابراین داده‌ها ازدست خواهند رفت. برای اطلاعات بیشتر، به راه‌اندازی تکثیر اولیه/آماده‌به‌کار برای Postgres مراجعه کنید.
    2. حذف همه داده‌های Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. ‫Postgres را پیکربندی کنید و سپس Postgres را بازراه‌اندازی کنید، همان‌طور که در مثال زیر نشان داده شده است:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    اگر در توپولوژی چند مرکز داده نصب می‌کنید، از مسیر مطلق برای فایل پیکربندی استفاده کنید.

  8. اجزای باقی‌مانده Apigee را در گره در ترتیب شروع شروع کنید، همان‌طور که مثال زیر نشان می‌دهد:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. این فرایند را برای هر گره در خوشه تکرار کنید.
  10. (اختیاری) بااستفاده از یک یا چند روش زیر، بررسی کنید که مقداردهی اولیه apigee-mtls باموفقیت انجام شده باشد:
    1. پیکربندی iptables را اعتبارسنجی کنید
    2. درستی‌سنجی وضعیت پراکسی ازراه‌دور
    3. درستی‌سنجی وضعیت حدنصاب

    هریک از این روش‌ها در درستی‌سنجی پیکربندی توضیح داده شده است.

تغییر پیکربندی apigee-mtls موجود

برای سفارشی‌سازی پیکربندی apigee-mtls موجود، باید apigee-mtls را حذف نصب و بازنصب کنید. همچنین باید مطمئن شوید که سفارشی‌سازی‌تان را در همه گره‌ها اعمال کنید.

برای تأکید بر این نکته، هنگام تغییر پیکربندی mTLS موجود Apigee:

  • اگر فایل پیکربندی را تغییر دهید، ابتدا باید apigee-mtls را حذف نصب کنید و setup یا configure را دوباره اجرا کنید:
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • باید setup یا configure را در همه گره‌های خوشه، نه فقط یک گره، حذف نصب و دوباره اجرا کنید.