پیکربندی 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. مقداردهی اولیه 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 میزبان خصوصی گره OpenLDAP در خوشه.
    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 ایجاد کنید، همان‌طور که در این بخش شرح داده شده است
  • استفاده از اطلاعات اعتباری CA موجود با Apigee mTLS (پیشرفته)

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

اعتبارنامه‌ها شامل موارد زیر است:

  • گواهینامه: گواهینامه TLS
  • کلید: کلید عمومی TLS
  • پیام Gossip: کلید رمزگذاری کدبندی‌شده با base-64

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

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

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

برای تولید اطلاعات اعتباری که Apigee mTLS برای اصالت‌سنجی ارتباطات امن بین گره‌ها در خوشه «ابر خصوصی» شما استفاده می‌کند، از یک Consul binary محلی استفاده کنید . درنتیجه، باید 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 را حذف نصب و بازنصب کنید. همچنین باید مطمئن شوید که سفارشی‌سازی‌تان را در همه گره‌ها اعمال می‌کنید.

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

  • اگر فایل پیکربندی را تغییر دهید، ابتدا باید 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 را در همه گره‌های خوشه حذف نصب و دوباره اجرا کنید، نه فقط در یک گره.