All Products
Search
Document Center

Realtime Compute for Apache Flink:Gunakan peran RAM untuk mengakses sumber daya cloud (Beta)

Last Updated:Aug 28, 2026

Realtime Compute for Apache Flink mendukung referensi peran RAM dalam namespace. Dengan mengasumsikan peran RAM, pekerjaan menggunakan token STS sementara alih-alih pasangan Kunci Akses dalam teks biasa untuk mengakses sumber daya Alibaba Cloud. Pendekatan ini memungkinkan akses tanpa kredensial, kontrol izin detail halus, serta pengelolaan kredensial yang bebas maintenance.

Ikhtisar

Dengan mereferensikan peran RAM, Anda dapat menggunakan peran tersebut untuk mengakses layanan Alibaba Cloud lainnya, seperti OSS dan KMS, dari pekerjaan Flink tanpa mengekspos pasangan Kunci Akses dalam teks biasa di kode pekerjaan.

Manfaat utama:

  • Perlindungan informasi sensitif: Tidak ada pasangan Kunci Akses yang diekspos dalam pekerjaan. Token STS peran RAM menggantikan kredensial statis.

  • Kontrol izin detail halus: Kebijakan izin peran RAM dapat dikustomisasi. Connector berbeda dapat menggunakan peran berbeda untuk menerapkan prinsip hak istimewa minimal.

  • Kredensial bebas maintenance: Token STS diperoleh dan diperbarui secara otomatis oleh sistem tanpa perlu mengelola rotasi kredensial.

Untuk detail selengkapnya, lihat Apendiks: Alur pemanggilan STS.

Catatan

Penghapusan atau modifikasi izin dan kebijakan kepercayaan peran RAM di RAM secara tidak benar dapat menyebabkan pekerjaan Flink gagal karena tidak dapat mengakses sumber daya cloud. Menurut Service Level Agreement for Realtime Compute for Apache Flink, ketidaktersediaan yang disebabkan oleh penggunaan sumber daya yang tidak tepat oleh pelanggan tidak dicakup oleh SLA.

Batasan

  • Hanya mesin VVR 11.8 dan versi lebih baru yang didukung. OSS Connector dan Postgres CDC Connector mendukung akses ke sumber daya cloud dengan peran RAM.

  • Maksimal 10 peran RAM dapat direferensikan per ruang kerja.

  • Satu operasi penambahan mendukung pemilihan hingga 5 peran.

  • Hanya peran layanan reguler (SR) yang dapat direferensikan. Peran terkait layanan (SLR) tidak didukung.

  • Token STS tidak didukung untuk debugging lokal pekerjaan PyFlink dan Flink JAR. Pekerjaan harus disebarkan ke kluster terlebih dahulu.

  • Hanya otentikasi identitas RAM untuk layanan Alibaba Cloud yang didukung.

Persiapan izin

Langkah 1: Buat dan konfigurasikan peran RAM

Peran ini adalah kredensial identitas yang digunakan layanan Flink untuk mengakses sumber daya cloud lainnya. Flink mengasumsikan peran ini untuk memperoleh kredensial sementara dan mengakses sumber daya cloud sebagai peran tersebut.

1. Buat peran RAM

  1. Login ke halaman RAM console - Roles dan klik Create Role. Pertahankan opsi default (entitas tepercaya adalah Akun Alibaba Cloud saat ini), lalu klik OK.

  2. Masukkan nama peran yang mudah dikenali, misalnya FlinkRoleForOSSRead, lalu klik OK.

2. Tambahkan kebijakan kepercayaan

Flink mengasumsikan peran RAM untuk memperoleh kredensial sementara. Peran RAM harus mempercayai Flink untuk mengasumsikannya.

Setelah peran dibuat, pada halaman detail peran, klik tab Trust Policy lalu klik Edit Trust Policy. Tambahkan "Service": ["stream.aliyuncs.com"] ke dalam Principal agar Flink dipercaya untuk mengasumsikan peran tersebut. Untuk informasi lebih lanjut, lihat Modify the trust policy of a RAM role.

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "stream.aliyuncs.com"
        ]
      }
    }
  ],
  "Version": "1"
}

3. Berikan izin untuk mengakses sumber daya cloud

Flink menggunakan identitas peran RAM untuk mengakses sumber daya cloud. Berikan izin yang diperlukan kepada peran RAM terlebih dahulu untuk mencegah error akses.

Pada halaman detail peran, klik tab Permissions lalu klik Grant Permission untuk memberikan izin kepada peran agar dapat mengakses sumber daya cloud target.

Sebagai contoh, untuk mengakses OSS, berikan izin AliyunOSSReadOnlyAccess (read-only) atau AliyunOSSFullAccess (penuh). Untuk informasi lebih lanjut, lihat Grant permissions to a RAM role.

Langkah 2: Berikan izin kepada Pengguna RAM

Buat kebijakan izin dan berikan kepada Pengguna RAM. Hal ini memungkinkan pengguna untuk pass peran RAM yang dibuat pada Langkah 1 ke layanan Flink untuk diasumsikan.

Catatan

Jika Pengguna RAM pada Langkah 3 sudah dikaitkan dengan kebijakan AliyunRAMFullAccess atau AliyunStreamFullAccess, pengguna tersebut sudah memiliki izin PassRole. Anda dapat melewati langkah ini.

Buat kebijakan izin

Login ke halaman RAM console - Policies lalu klik Create Policy. Beralih ke mode Script dan edit konten kebijakan.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ram:ListRoles"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "ram:PassRole",
      "Resource": "acs:ram::<account-id>:role/<role-name>",
      "Condition": {
        "StringEquals": {
          "acs:Service": "stream.aliyuncs.com"
        }
      }
    }
  ]
}

Izin

Deskripsi

ram:ListRoles

Memungkinkan pengguna melihat daftar peran di bawah akun, sehingga peran dapat dipilih di Konsol Flink.

ram:PassRole

Memungkinkan pengguna meneruskan peran tertentu ke layanan cloud Flink. Ganti <account-id> dan <role-name> dalam kebijakan dengan nilai aktual:

  • <account-id>: UID Akun Alibaba Cloud.

  • <role-name>: Nama peran RAM yang dibuat pada Langkah 1.

Tambahkan Condition untuk membatasi penerusan peran hanya ke stream.aliyuncs.com.

Klik OK untuk menyimpan kebijakan, misalnya sebagai FlinkPassRolePolicy. Untuk informasi lebih lanjut, lihat Create a custom policy.

Berikan izin kepada Pengguna RAM

  1. Login ke halaman RAM console - Users. Temukan Pengguna RAM yang akan diberi otorisasi, lalu klik Add Permissions pada kolom Actions.

  2. Pada panel Add Permissions, cari dan pilih kebijakan yang dibuat pada Langkah 2 (misalnya, FlinkPassRolePolicy), lalu klik Confirm. Untuk informasi lebih lanjut, lihat Grant permissions to a RAM user.

Langkah 3: Referensikan peran RAM di Flink

Pengguna yang diberi otorisasi pada Langkah 2 dapat meneruskan peran RAM dari Langkah 1 ke Flink. Flink mengasumsikan peran tersebut untuk memperoleh kredensial sementara dan mengakses sumber daya cloud sebagai peran tersebut.

Tambahkan referensi peran RAM

  1. Login ke Konsol Realtime Compute dan masuk ke ruang kerja target.

  2. Pada panel navigasi kiri, pilih Security Services > Access Security.

  3. Klik tab RAM Roles.

  4. Klik Reference RAM Role.

  5. Pada kotak dialog, konfigurasikan hal berikut:

    Item

    Wajib

    Deskripsi

    RAM role

    Ya

    Pilih peran dari daftar drop-down. Pencarian fuzzy berdasarkan nama peran dan multi-pilih (maksimal 5 per operasi) didukung. Peran yang telah direferensikan tidak dapat dipilih lagi.

    Catatan
    • Daftar peran berisi peran layanan reguler di bawah Akun Alibaba Cloud yang memiliki namespace saat ini.

    • Operator harus berada dalam Akun Alibaba Cloud yang sama dengan namespace saat ini dan memiliki izin ListRoles untuk melihat daftar peran.

    Description

    Tidak

    Deskripsi peran. Maksimal 256 karakter.

  6. Klik Test. Sistem secara otomatis memeriksa dua hal berikut:

    • Pemeriksaan izin PassRole: Pengguna saat ini memiliki izin ram:PassRole pada peran RAM yang dipilih.

    • Pemeriksaan kebijakan kepercayaan: Peran RAM yang dipilih mempercayai namespace Flink saat ini untuk mengasumsikannya.

  7. Setelah pemeriksaan berhasil, klik OK.

Gunakan peran RAM dalam pekerjaan

Setelah peran RAM direferensikan, tentukan nama peran menggunakan parameter akless.assume-role.role-name dalam kode pekerjaan. Flink mengasumsikan peran tersebut untuk memperoleh token STS sementara dan mengakses sumber daya cloud sebagai peran tersebut.

Catatan

Hanya OSS Connector dan Postgres CDC Connector pada mesin VVR 11.8 dan versi lebih baru yang mendukung fitur ini.

Deskripsi parameter

Parameter

Tipe

Wajib

Deskripsi

akless.assume-role.role-name

String

Tidak

Nama peran RAM, misalnya oss-read. Peran tersebut harus telah direferensikan terlebih dahulu di bawah Access Security > RAM Roles. Jika tidak, pengiriman pekerjaan akan gagal.

Aturan prioritas

  • Jika pasangan Kunci Akses (accessKeyId + accessKeySecret) ditentukan secara eksplisit, pasangan Kunci Akses tersebut memiliki prioritas tertinggi.

  • Jika tidak ada pasangan Kunci Akses yang ditentukan tetapi parameter akless.assume-role.role-name ditentukan, maka token STS dari peran tersebut akan digunakan.

  • Connector berbeda dalam satu pekerjaan dapat menggunakan peran berbeda dengan menentukan nilai akless.assume-role.role-name yang berbeda.

Contoh OSS

Tambahkan konfigurasi berikut di bawah Other Configuration pada bagian Runtime Parameters di tab Deployment Details:

# OSS
fs.oss.bucket.<bucketName>.akless.assume-role.role-name: <your-role-name>
fs.oss.inner.bucket: <workspace-associated-bucket-name>

# OSS-HDFS
fs.oss.jindo.akless.assume-role.role-name: <your-role-name>

Parameter

Deskripsi

<bucketName>

Nama bucket dalam parameter path sistem file target (path).

<workspace-associated-bucket-name>

Periksa bidang Storage Type pada halaman daftar ruang kerja untuk menentukan apakah ruang kerja menggunakan bucket OSS yang dikelola sendiri atau penyimpanan fully managed, lalu peroleh nama bucket sesuai:

  • OSS bucket: Pada dialog detail ruang kerja, temukan bidang OSS Bucket, yaitu nama bucket OSS yang terkait dengan ruang kerja saat ini.

  • Fully managed: flink-fullymanaged-<workspace-id>, misalnya flink-fullymanaged-db12345678. ID ruang kerja tersedia di dialog detail.

<your-role-name>

Nama peran RAM yang digunakan untuk mengakses OSS.

Kelola referensi peran RAM

Catatan

Menyunting atau menghapus peran RAM di Flink hanya memengaruhi referensi Flink terhadap peran RAM tersebut. Hal ini tidak langsung memodifikasi peran RAM itu sendiri.

Sunting peran RAM

  1. Di bawah Security Services > Access Security > RAM Roles, temukan peran target lalu klik Edit pada kolom Actions.

  2. Pada kotak dialog, ubah deskripsi. Nama peran tidak dapat diubah.

  3. Klik Test. Setelah pemeriksaan berhasil, klik OK.

Hapus peran RAM

Penting

Setelah Anda menghapus peran RAM, semua pekerjaan di namespace saat ini yang mereferensikan peran tersebut akan gagal. Lanjutkan dengan hati-hati.

  1. Di bawah Security Services > Access Security > RAM Roles, temukan peran target lalu klik Remove pada kolom Actions.

  2. Pada kotak dialog konfirmasi, masukkan nama peran lalu klik Confirm Removal.

Segarkan status peran

Klik Refresh di pojok kanan atas daftar RAM Roles untuk memeriksa status semua peran yang direferensikan secara massal.

Status

Deskripsi

Normal

Peran tersebut ada di RAM dan token STS-nya valid.

Abnormal

Peran tersebut telah dihapus dari RAM, atau kebijakan kepercayaannya tidak lagi mengizinkan Flink untuk mengasumsikannya. Pekerjaan yang mereferensikan peran ini mungkin berjalan tidak normal.

Apendiks: Alur pemanggilan STS

Alibaba Cloud RAM menyediakan dua model otorisasi inti terkait peran: asumsi langsung (AssumeRole) dan otorisasi terdelegasi (PassRole).

Model 1: Asumsi langsung (sts:AssumeRole)

  • Aksi inti: Entitas tepercaya (seperti Pengguna RAM atau aplikasi) secara aktif memanggil API STS AssumeRole untuk memperoleh kredensial sementara untuk peran RAM, sehingga secara efektif "bertransformasi" menjadi peran tersebut.

  • Rantai otorisasi: Entity ACalls sts:AssumeRoleAssumes Role RObtains Role R permissions.

  • Persyaratan izin: Entity A harus diberikan izin sts:AssumeRole.

  • Skenario khas: Aplikasi yang berjalan di ECS atau server lokal perlu mengakses OSS secara sementara. Aplikasi tersebut menggunakan pasangan Kunci Akses miliknya sendiri untuk memanggil AssumeRole, memperoleh kredensial sementara, lalu menggunakannya untuk mengakses OSS. Dalam skenario ini, Entity A adalah pelaksana aktif.

Model 2: Otorisasi terdelegasi (ram:PassRole)

  • Aksi inti: Entitas (seperti Pengguna RAM) "meneruskan" peran RAM ke layanan cloud (seperti Flink), memberi otorisasi kepada layanan tersebut untuk mengasumsikan peran tersebut. Pengguna tidak mengasumsikan peran tersebut.

  • Rantai otorisasi: User_B → Passes Role_A → To the cloud service → The cloud service calls sts:AssumeRole to assume Role_A → The cloud service obtains Role_A permissions.

  • Persyaratan izin: User B harus diberikan izin ram:PassRole, dan Role A harus mempercayai layanan cloud untuk mengasumsikannya.

  • Skenario khas: Developer (User_B) mengembangkan pekerjaan di Konsol Flink dan menentukan peran (Role_A). Untuk memungkinkan layanan Flink mengakses sumber daya cloud atas nama pengguna, pengguna harus memiliki izin untuk meneruskan Role_A ke layanan Flink. Dalam skenario ini, pengguna adalah pemberi otorisasi, dan layanan cloud adalah pelaksana.