Mengizinkan akses multicloud ke resource yang dilindungi dari endpoint pribadi di luar perimeter Kontrol Layanan VPC

Arsitektur referensi

Dalam arsitektur referensi berikut, VPC Bersama di-deploy dengan model Gemini di project layanan, ph-fm-svc-project (project layanan model dasar) dengan atribut kebijakan layanan yang memungkinkan akses pribadi ke Agent Platform API dari AWS:

  • Satu perimeter Kontrol Layanan VPC
  • Identitas pengguna yang ditentukan project

Diagram arsitektur penggunaan Kontrol Layanan VPC untuk membuat perimeter layanan.

Opsional: Membuat tingkat akses

Jika pengguna akhir Anda memerlukan akses ke Gemini Enterprise Agent Platform melalui konsol Cloud de Confiance , ikuti petunjuk di bagian ini untuk membuat tingkat akses Kontrol Layanan VPC. Namun, jika akses terprogram ke API berasal dari sumber pribadi (seperti lokal dengan Akses Google Pribadi atau Cloud Workstations), tingkat akses tidak diperlukan.

Dalam arsitektur referensi ini, kami menggunakan rentang CIDR perusahaan, corp-public-block, untuk mengizinkan traffic karyawan perusahaan mengakses Cloud de Confiance konsol.

Access Context Manager memungkinkan Cloud de Confiance by S3NS administrator organisasi menentukan kontrol akses berbasis atribut yang terperinci untuk project dan resource di Cloud de Confiance by S3NS.

Tingkat akses menjelaskan persyaratan yang harus dipenuhi agar permintaan dapat diproses. Contohnya mencakup:

Jika ini adalah pertama kalinya organisasi menggunakan Access Context Manager, maka administrator harus menentukan kebijakan akses, yang merupakan container untuk tingkat akses dan perimeter layanan.

  1. Di pemilih project di bagian atas Cloud de Confiance konsol, klik tab All, lalu pilih organisasi Anda.

  2. Buat tingkat akses dasar dengan mengikuti petunjuk di halaman Membuat tingkat akses dasar. Tentukan opsi berikut:

    1. Di bagian Create conditions in, pilih Basic mode.
    2. Di kolom Access level title, masukkan corp-public-block.
    3. Di bagian Conditions, untuk opsi When condition is met, return, pilih TRUE.
    4. Di bagian IP Subnetworks, pilih Public IP.
    5. Untuk rentang alamat IP, tentukan rentang CIDR eksternal Anda yang memerlukan akses ke perimeter Kontrol Layanan VPC.

Membuat perimeter layanan Kontrol Layanan VPC

Saat Anda membuat perimeter layanan, Anda mengizinkan akses ke layanan yang dilindungi dari luar perimeter dengan menentukan project yang dilindungi. Saat menggunakan Kontrol Layanan VPC dengan VPC Bersama, Anda membuat satu perimeter besar yang mencakup project host dan layanan. (Jika hanya memilih project layanan di perimeter, endpoint jaringan yang termasuk dalam project layanan akan tampak berada di luar perimeter, karena subnet hanya terkait dengan project host.)

Memilih jenis konfigurasi untuk perimeter baru

Di bagian ini, Anda akan membuat perimeter layanan Kontrol Layanan VPC dalam mode uji coba. Dalam mode uji coba, perimeter mencatat pelanggaran seolah-olah perimeter tersebut diterapkan, tetapi tidak mencegah akses ke layanan yang dibatasi. Sebaiknya gunakan mode uji coba sebelum beralih ke mode diterapkan sebagai praktik terbaik.

  1. Di bagian Navigation menu pada konsol, klik Security, lalu klik VPC Service Controls. Cloud de Confiance

    Buka halaman VPC Service Controls

  2. Di halaman VPC Service Controls, klik Dry run mode.

  3. Klik New perimeter.

  4. Di tab New VPC Service Perimeter, di kotak Perimeter Name , masukkan nama perimeter. Jika tidak, terima nilai default.

    Nama perimeter dapat memiliki panjang maksimal 50 karakter, harus diawali dengan huruf, dan hanya boleh berisi huruf Latin ASCII (a-z, A-Z), angka (0-9), atau garis bawah (_). Nama perimeter peka huruf besar/kecil dan harus unik dalam kebijakan akses.

Memilih resource yang akan dilindungi

  1. Klik Resources to protect.

  2. Untuk menambahkan project atau jaringan VPC yang ingin Anda amankan dalam perimeter, lakukan hal berikut:

    1. Klik Add Resources.

    2. Untuk menambahkan project ke perimeter, di panel Add resources , klik Add project.

      1. Untuk memilih project, di dialog Add projects, centang kotak project tersebut. Dalam arsitektur referensi ini, kita memilih project berikut:

        • infra-host-project
        • aiml-host-project
        • ph-fm-svc-project
      2. Klik Add selected resources. Project yang ditambahkan akan muncul di bagian Projects.

Memilih layanan yang dibatasi

Dalam arsitektur referensi ini, cakupan API yang dibatasi terbatas, hanya mengaktifkan API yang diperlukan untuk Gemini. Namun, sebagai praktik terbaik, sebaiknya batasi semua layanan saat Anda membuat perimeter untuk mengurangi risiko pemindahan data yang tidak sah dari Cloud de Confiance by S3NS layanan.

Untuk memilih layanan yang akan diamankan dalam perimeter, lakukan hal berikut:

  1. Klik Restricted Services.

  2. Di panel Restricted Services, klik Add services.

  3. Di dialog Specify services to restrict, pilih Agent Platform API.

  4. Klik Add Agent Platform API.

Opsional: Memilih layanan yang dapat diakses VPC

Setelan VPC accessible services membatasi kumpulan layanan yang dapat diakses dari endpoint jaringan di dalam perimeter layanan Anda. Dalam arsitektur referensi ini, kami mempertahankan setelan default All Services.

Opsional: Memilih tingkat akses

Jika Anda membuat tingkat akses CIDR perusahaan di bagian sebelumnya, lakukan hal berikut untuk mengizinkan akses ke resource yang dilindungi dari luar perimeter:

  1. Klik Access Levels.

  2. Klik kotak Choose Access Level.

    Anda juga dapat menambahkan tingkat akses setelah perimeter dibuat.

  3. Centang kotak yang sesuai dengan tingkat akses. (Dalam arsitektur referensi ini, tingkat aksesnya adalah corp-public-block.)

Kebijakan ingress dan egress

Dalam arsitektur referensi ini, Anda tidak perlu menentukan setelan apa pun di panel Ingress Policy atau Egress Policy.

Membuat perimeter

Setelah menyelesaikan langkah-langkah konfigurasi sebelumnya, buat perimeter dengan mengklik Create perimeter.

Mengonfigurasi konektivitas jaringan antara AWS dan Google API

Mengonfigurasi Private Service Connect untuk Google API

Private Service Connect untuk mengakses Google API adalah alternatif penggunaan Akses Google Pribadi atau nama domain publik untuk Google API. Dalam hal ini, produsernya adalah Google.

Menggunakan Private Service Connect memungkinkan Anda melakukan hal berikut:

  • Buat satu atau beberapa alamat IP internal guna mengakses Google API untuk berbagai kasus penggunaan.
  • Mengarahkan traffic lokal ke alamat IP dan region tertentu saat mengakses Google API.
  • Membuat nama DNS endpoint kustom yang digunakan untuk me-resolve Google API.

Dalam arsitektur referensi, endpoint Google API Private Service Connect bernama restricted, dengan Alamat IP 10.10.10.3, di-deploy dengan VPC-SC target, yang digunakan sebagai IP Virtual (VIP) untuk mengakses layanan yang dibatasi yang dikonfigurasi di Perimeter VPC-SC. Penargetan layanan yang tidak dibatasi dengan VIP tidak didukung. Untuk mengetahui informasi selengkapnya, lihat Tentang mengakses Agent Platform API | Cloud de Confiance by S3NS.

Mengonfigurasi jaringan VPC AWS

Konektivitas jaringan antara Amazon Web Services (AWS) dan Cloud de Confiance by S3NS dibuat menggunakan tunnel Virtual Private Network (VPN) dengan Ketersediaan Tinggi (HA). Koneksi aman ini memfasilitasi komunikasi pribadi antara dua lingkungan cloud. Namun, untuk mengaktifkan pemilihan rute dan komunikasi yang lancar antara resource di AWS dan Cloud de Confiance by S3NS, Border Gateway Protocol (BGP) digunakan.

Di lingkungan konsol, pemberitahuan rute kustom diperlukan. Cloud de Confiance by S3NS Rute kustom ini secara khusus mengiklankan alamat IP Google API Private Service Connect ke jaringan AWS. Dengan mengiklankan alamat IP ini, AWS dapat membuat rute langsung ke Google API, melewati internet publik dan meningkatkan performa.

Dalam arsitektur referensi, instance Sagemaker di-deploy dengan an asosiasi dengan VPC AWS tempat VPN dibuat dengan Cloud de Confiance by S3NS. Border Gateway Protocol (BGP) digunakan untuk mengiklankan rute di seluruh VPN HA antara AWS dan Cloud de Confiance by S3NS konsol. Alhasil, Cloud de Confiance by S3NS dan AWS dapat merutekan traffic dua arah melalui VPN. Untuk mengetahui informasi selengkapnya tentang cara menyiapkan koneksi VPN HA, lihat Membuat koneksi VPN HA antara konsol dan AWS. Cloud de Confiance by S3NS

Mengonfigurasi update Route 53

Buat zona yang dihosting secara pribadi bernama p.googleapis.com di AWS Route 53 dan tambahkan nama domain yang sepenuhnya memenuhi syarat REGION-aiplatform-restricted.p.googleapis.com dengan alamat IP 10.10.10.3 (IP Googleapis Private Service Connect) sebagai data DNS A. Saat Jupyter Notebook SDK melakukan pencarian DNS untuk Agent Platform API guna menjangkau Gemini, Route 53 akan menampilkan alamat IP Google API Private Service Connect. Jupyter Notebook menggunakan alamat IP yang diperoleh dari Route 53 untuk membuat koneksi ke endpoint Google API Private Service Connect yang dirutekan melalui VPN HA ke Cloud de Confiance by S3NS.

Mengonfigurasi update Sagemaker

Arsitektur referensi ini menggunakan instance Amazon SageMaker Notebook untuk mengakses Agent Platform API. Namun, Anda dapat mencapai penyiapan yang sama dengan layanan komputasi lain yang mendukung VPC, seperti Amazon EC2 atau AWS Lambda.

Untuk mengautentikasi permintaan, Anda dapat menggunakan kunci akun layanan Cloud de Confiance by S3NS atau menggunakan Workload Identity Federation. Untuk mengetahui informasi tentang cara menyiapkan Workload Identity Federation, lihat Lokal atau penyedia cloud lain.

Instance Jupyter Notebook memanggil panggilan API ke model Gemini yang dihosting di Cloud de Confiance by S3NS dengan melakukan resolusi DNS ke Google API Private Service Connect kustom nama domain yang sepenuhnya memenuhi syarat REGION-aiplatform-restricted.p.googleapis.com mengganti nama domain yang sepenuhnya memenuhi syarat default (REGION-aiplatform.googleapis.com).

Agent Platform API dapat dipanggil menggunakan Rest, gRPC, atau SDK. Untuk menggunakan nama domain yang sepenuhnya memenuhi syarat pelanggan Private Service Connect, perbarui API_ENDPOINT di Jupyter Notebook dengan hal berikut:

Petunjuk penggunaan Agent Platform SDK untuk Python

  1. Instal SDK:

    pip install --upgrade google-genai
    
  2. Impor dependensi:

    from google.cloud import genai
    from google.genai.types import (
       GenerateContentConfig,
       HarmBlockThreshold,
       HarmCategory,
       Part,
       SafetySetting
    )
    
  3. Lakukan inisialisasi variabel lingkungan berikut:

    PROJECT_ID="ph-fm-svc-projects" # Google Cloud Project ID
    LOCATION_ID="us-central1" # Enter Agent Platform Gemini region such as us-central1
    API_ENDPOINT="https://us-central1-aiplatform-restricted.p.googleapis.com" # PSC Endpoint
    MODEL_ID="gemini-2.0-flash-001" # Gemini Model ID
    
  4. Lakukan inisialisasi Agent Platform SDK untuk Python:

    from google import genai
    client= genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION_ID, http_options={'base_url': API_ENDPOINT})
    
  5. Buat permintaan berikut ke Gemini Enterprise Agent Platform Gemini API:

    prompt = "which weighs more, 1kg feathers or 1kg stones"
    
    safety_settings = [
        SafetySetting(
            category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
            threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        ),
        SafetySetting(
            category=HarmCategory.HARM_CATEGORY_HARASSMENT,
            threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        ),
        SafetySetting(
            category=HarmCategory.HARM_CATEGORY_HATE_SPEECH,
            threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        ),
        SafetySetting(
            category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
            threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        ),
    ]
    
    response = client.models.generate_content(
        model=MODEL_ID,
        contents=prompt,
        config=GenerateContentConfig(
            safety_settings=safety_settings,
        ),
    )
    
    # Response will be `None` if it is blocked.
    print(response.text)
    

    Pada tahap ini, Anda dapat melakukan panggilan API ke Gemini dari notebook Jupyter untuk mengakses Gemini yang dihosting di Cloud de Confiance by S3NS. Jika panggilan berhasil, output-nya akan terlihat seperti berikut:

    They weigh the same. Both weigh 1 kilogram.
    

Petunjuk penggunaan Gemini Enterprise Agent Platform REST API

Di bagian ini, Anda akan menyiapkan beberapa variabel penting yang digunakan selama proses. Variabel ini menyimpan informasi tentang project Anda, lokasi resource, model Gemini tertentu, dan endpoint PSC yang ingin Anda gunakan. Buka jendela terminal di dalam notebook JupyterLab untuk menjalankan perintah berikut:

  1. Buka jendela terminal di dalam a notebook Jupyter.

  2. Lakukan inisialisasi variabel lingkungan berikut:

    export PROJECT_ID="ph-fm-svc-projects"
    export LOCATION_ID="us-central1"
    export API_ENDPOINT="us-central1-aiplatform-restricted.p.googleapis.com" export MODEL_ID="gemini-1.5-flash-002"
    
  3. Gunakan editor teks seperti vim atau nano untuk membuat file baru bernama request.json yang berisi permintaan berformat berikut untuk Gemini Enterprise Agent Platform Gemini API:

    {
        "contents": [
            {
                "role": "user",
                "parts": [
                    {
                        "text": "which weighs more, 1kg feathers or 1kg stones"
                   }
               ]
            }
        ],
            "generationConfig": {
            "temperature": 1,
            "maxOutputTokens": 8192,
            "topP": 0.95,
            "seed": 0
        },
        "safetySettings": [
            {
                "category": "HARM_CATEGORY_HATE_SPEECH",
                "threshold": "OFF"
            },
            {
                "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
                "threshold": "OFF"
            },
            {
                "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
                "threshold": "OFF"
            },
            {
                "category": "HARM_CATEGORY_HARASSMENT",
                "threshold": "OFF"
            }
        ]
    }
    
  4. Buat permintaan curl berikut ke Gemini Enterprise Agent Platform Gemini API:

    curl -v \
    -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://$API_ENDPOINT/v1/projects/$PROJECT_ID/locations/$LOCATION_ID/publishers/google/models/$MODEL_ID:streamGenerateContent" -d '@request.json'
    

Memvalidasi perimeter dalam mode uji coba

Dalam arsitektur referensi ini, perimeter layanan dikonfigurasi dalam mode uji coba, sehingga Anda dapat menguji efek kebijakan akses tanpa penerapan. Artinya, Anda dapat melihat dampak kebijakan terhadap lingkungan jika kebijakan tersebut aktif, tetapi tanpa risiko mengganggu traffic yang sah.

Setelah memvalidasi perimeter dalam mode uji coba, alihkan ke mode diterapkan.

Langkah berikutnya