全部产品
Search
文档中心

Hologres:Mode otorisasi Peran RAM Hologres

更新时间:Nov 10, 2025

Topik ini menjelaskan cara menggunakan Single Sign-On (SSO) berbasis peran untuk mengakses Hologres.

Informasi latar belakang

Pengguna perusahaan dapat masuk ke Konsol Manajemen Alibaba Cloud menggunakan akun dan kata sandi untuk mengelola serta menggunakan sumber daya cloud. Namun, karena persyaratan keamanan perusahaan yang semakin ketat, beberapa perusahaan lebih memilih menggunakan SSO berbasis peran untuk masuk ke Alibaba Cloud. Untuk informasi lebih lanjut, lihat Ikhtisar SSO Peran Berbasis SAML.

Skenario

Biasanya, pengguna perusahaan masuk ke Konsol Manajemen Alibaba Cloud dengan akun dan kata sandi untuk mengelola serta menggunakan sumber daya cloud. Namun, karena persyaratan keamanan dan regulasi yang lebih ketat, perusahaan yang ingin mengelola otentikasi masuk secara terpusat sering kali memilih untuk menggunakan SSO untuk masuk ke aplikasi. SSO memungkinkan pengguna masuk sekali untuk mengakses semua sistem aplikasi yang saling dipercaya. Hologres sekarang mendukung mode masuk SSO berbasis peran. Untuk informasi lebih lanjut, lihat Ikhtisar SSO Peran Berbasis SAML. Fitur ini memungkinkan Anda menggunakan akun perusahaan untuk mengasumsikan Peran RAM guna mengakses Instans Hologres. Peran RAM mengontrol izin akses. Contoh berikut menunjukkan cara kerjanya.适用场景

  1. Pengguna menggunakan browser untuk memilih Alibaba Cloud sebagai layanan target di halaman masuk penyedia identitas (IdP).

    Sebagai contoh, jika IdP perusahaan menggunakan Microsoft Active Directory Federation Services (AD FS), URL masuknya adalah https://ADFSServiceName/adfs/ls/IdpInitiatedSignOn.aspx.

    Catatan

    Beberapa IdP mengharuskan pengguna untuk masuk terlebih dahulu sebelum mereka dapat memilih aplikasi SSO yang mewakili Alibaba Cloud.

  2. IdP menghasilkan respons Security Assertion Markup Language (SAML) dan mengembalikannya ke browser.

  3. Browser mengarahkan ke halaman layanan SSO dan meneruskan respons SAML ke layanan SSO.

  4. Layanan SSO menggunakan respons SAML untuk meminta kredensial keamanan sementara dari Layanan Token Keamanan Alibaba Cloud (STS) dan menghasilkan URL yang dapat digunakan untuk masuk ke Konsol Manajemen Alibaba Cloud.

    Catatan

    Jika respons SAML berisi atribut yang dipetakan ke beberapa Peran RAM, sistem pertama-tama akan meminta pengguna untuk memilih peran untuk mengakses Alibaba Cloud.

  5. Layanan SSO mengembalikan URL ke browser.

  6. Browser mengarahkan ke URL. Pengguna masuk ke Konsol Manajemen Alibaba Cloud dengan Peran RAM yang ditentukan dan kemudian dapat menggunakan akun perusahaan untuk mengasumsikan Peran RAM guna masuk ke Instans Hologres.

Metode akses pengguna yang didukung oleh Hologres

Hologres mendukung dua metode akses berikut:

  • Akses Hologres menggunakan Akun Alibaba Cloud atau Pengguna RAM.

    Anda dapat masuk ke Konsol Manajemen Alibaba Cloud dengan memasukkan akun dan kata sandi, lalu mengakses Hologres sebagai pengguna yang telah masuk. Dalam hal ini, Akun Alibaba Cloud menjadi anggota Instans Hologres dan diberikan izin untuk menggunakan produk Hologres.

  • Masuk ke Hologres menggunakan SSO berbasis peran.

    Anda juga dapat masuk ke Alibaba Cloud menggunakan SSO berbasis peran dan kemudian mengakses Hologres. Untuk informasi lebih lanjut, lihat Ikhtisar SSO Peran Berbasis SAML. Dalam hal ini, Peran RAM menjadi anggota Instans Hologres. Pengguna yang mengasumsikan Peran RAM ini memiliki izin yang sama untuk menggunakan produk seperti anggota yang menggunakan Akun Alibaba Cloud. Untuk informasi lebih lanjut tentang Peran RAM, lihat Ikhtisar Peran RAM.

Dalam Hologres, Peran RAM dan Akun Alibaba Cloud, termasuk akun root dan Pengguna RAM, diperlakukan setara. Oleh karena itu, Peran RAM diperlakukan sebagai akun masuk standar dalam Hologres. Superuser harus memberikan izin, seperti SELECT, INSERT, dan UPDATE, kepada Peran RAM ini, bukan Akun Alibaba Cloud yang mendasarinya. Peran RAM kemudian dapat mengakses Hologres dalam lingkup izin yang diberikan.

Pengenalan SSO berbasis peran (STS)

Masuk dan mengakses Hologres menggunakan SSO berbasis peran diimplementasikan berdasarkan STS Alibaba Cloud. STS adalah layanan cloud yang menyediakan manajemen izin akses jangka pendek untuk Akun Alibaba Cloud atau Pengguna RAM. Dengan menggunakan STS, Anda dapat menerbitkan kredensial akses dengan periode validitas dan izin akses kustom kepada pengguna yang dikelola oleh sistem akun lokal Anda. Pengguna dapat menggunakan kredensial akses STS jangka pendek untuk langsung terhubung ke Hologres dan mengakses sumber daya yang diizinkan.

Menggunakan token STS memberikan manfaat berikut:

  • Anda dapat menghasilkan kredensial akses sementara untuk pengguna, yang mengurangi risiko paparan AccessKey ID dan Rahasia AccessKey jangka panjang.

  • Ini memungkinkan kontrol akses yang fleksibel. Karena token STS memiliki durasi terbatas, kredensial akses sementara secara otomatis menjadi tidak valid setelah kedaluwarsa, sehingga menghilangkan kebutuhan untuk mencabut izin secara manual.

Langkah-langkah berikut membimbing Anda melalui pembuatan Peran RAM dan pemberian izin untuk mengakses Hologres.

Langkah 1: Buat peran RAM

Anda dapat masuk ke Konsol RAM untuk membuat Peran RAM. Untuk jenis entitas tepercaya, Anda dapat memilih Akun Alibaba Cloud atau Penyedia Identitas.

Asumsikan peran sebagai Pengguna RAM dan tambahkan izin

Untuk mengizinkan Pengguna RAM mengasumsikan Peran RAM dengan beralih identitas di Konsol Manajemen Alibaba Cloud, Anda dapat masuk ke Konsol RAM dan membuat Peran RAM. Untuk jenis entitas tepercaya, pilih Akun Alibaba Cloud.

  1. Buat peran RAM untuk akun Alibaba Cloud tepercaya.

    1. Masuk ke Konsol RAM. Di panel navigasi di sebelah kiri, klik Identity Management > Roles.

    2. Di halaman Create Role, klik Create Role. Atur Jenis Principal ke Cloud Account dan Nama Principal ke Current Account. Klik OK.

    3. Di kotak dialog Create Role, masukkan Role Name dan klik OK.

  2. Buat dan tambahkan kebijakan akses.

    1. Di halaman Peran RAM, klik nama peran target untuk membuka halaman detail peran.

    2. Di tab Trust Policy, klik Edit Trust Policy. Ganti konten kebijakan dengan skrip berikut.

      • Parameter

        Saat mengonfigurasi kebijakan, ganti `ID akun Alibaba Cloud` di acs:ram::ID akun Alibaba Cloud:root dengan ID akun yang ingin Anda berikan izin. Anda dapat memperoleh ID akun dari Halaman Informasi Pengguna.

      • Konfigurasi Skrip

        {
            "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "RAM": [
                            "acs:ram::ID akun Alibaba Cloud:root"
                        ]
                    }
                },
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": [
                            "dataworks.aliyuncs.com"
                        ]
                    }
                }
            ],
            "Version": "1"
        }
    3. Klik OK untuk menyelesaikan konfigurasi kebijakan.

  3. Buat Pengguna RAM dan berikan izin untuk mengasumsikan peran.

    Untuk mengizinkan Pengguna RAM mengasumsikan Peran RAM, Anda harus membuat Pengguna RAM dan memberikan izin untuk mengasumsikan peran tersebut.

    1. Masuk ke Konsol RAM. Di panel navigasi di sebelah kiri, pilih Identity Management > Users.

    2. (Opsional) Jika Anda sudah memiliki Pengguna RAM, Anda dapat melewati langkah ini. Anda dapat mengklik Create User untuk membuat beberapa Pengguna RAM sekaligus. Untuk informasi lebih lanjut, lihat Buat Pengguna RAM.

    3. Di kolom Actions dari Pengguna RAM target, klik Add Permissions.

    4. Di halaman Add Permissions, lampirkan kebijakan AliyunSTSAssumeRoleAccess ke Pengguna RAM untuk memberikan izin memanggil operasi API AssumeRole dari STS.设置STS权限

    5. Klik OK untuk mengonfirmasi pengaturan peran.

Asumsikan peran sebagai Pengguna IdP dan tambahkan izin

Untuk mengasumsikan Peran RAM dengan masuk ke Alibaba Cloud menggunakan akun IdP lokal, Anda dapat masuk ke Konsol RAM dan membuat Peran RAM. Untuk jenis entitas tepercaya, pilih Penyedia Identitas.

  1. Buat Peran RAM untuk Penyedia Identitas tepercaya.

    1. Masuk ke Konsol RAM. Di panel navigasi di sebelah kiri, klik Identity Management > Roles.

    2. Di halaman Roles, klik Create Role. Pilih Identity Provider sebagai jenis entitas tepercaya.

    3. Klik OK. Masukkan Role Name dan Note.

    4. Pilih IdP Type dan IdP. Setelah Anda meninjau kondisi, klik Finish. Pesan muncul untuk mengonfirmasi bahwa peran telah dibuat.

  2. Buat dan tambahkan kebijakan akses.

    1. Di halaman Peran, klik nama peran target untuk membuka halaman detail peran.

    2. Di tab Trust Policy, klik Edit Trust Policy dan ganti kebijakan dengan skrip berikut.

      • Parameter

        Saat mengonfigurasi kebijakan, ganti `ID akun Alibaba Cloud` di acs:ram::ID akun Alibaba Cloud:saml-provider/IDP dengan ID akun yang ingin Anda berikan izin. Anda dapat memperoleh ID akun dari Halaman Informasi Pengguna.

      • Konfigurasi Skrip

        {
            "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Condition": {
                        "StringEquals": {
                            "saml:recipient": "https://signin.aliyun.com/saml-role/sso"
                        }
                    },
                    "Effect": "Allow",
                    "Principal": {
                        "Federated": [
                            "acs:ram::ID akun Alibaba Cloud:saml-provider/IDP"
                        ]
                    }
                },
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": [
                            "dataworks.aliyuncs.com"
                        ]
                    }
                }
            ],
            "Version": "1"
        }
    3. Klik OK untuk menyelesaikan konfigurasi kebijakan.

Langkah 2: Tambahkan Peran RAM ke Instans Hologres dan berikan izin

Peran RAM memerlukan izin pengembangan pada Instans Hologres. Secara default, Peran RAM tidak dapat melihat atau mengelola instans di Konsol Hologres. Akun Alibaba Cloud harus terlebih dahulu memberikan izin yang diperlukan kepada Peran RAM. Untuk informasi lebih lanjut, lihat Berikan Izin kepada Pengguna RAM. Setelah menambahkan Peran RAM ke Instans Hologres, Anda dapat memberikan izin menggunakan salah satu cara berikut.

  1. Masuk ke Konsol Hologres untuk memberikan izin.

    1. Di panel navigasi sebelah kiri, arahkan ke halaman Instance List dan klik instans target. Di tab User Management, temukan Peran RAM dan tambahkan sebagai pengguna baru ke instans.

    2. Di tab DB Authorization, berikan izin pengembangan untuk instans tertentu kepada Peran RAM.

  2. Berikan izin menggunakan SQL.

    Anda dapat memberikan izin menggunakan pernyataan SQL. Untuk informasi lebih lanjut, lihat Ikhtisar Manajemen Izin.

  3. Jika Pengguna RAM mengasumsikan Peran RAM, peran tersebut tidak memiliki izin di Konsol Hologres secara default. Untuk mengaktifkan peran melakukan operasi di Konsol Hologres, Akun Alibaba Cloud harus memberikan izin AliyunRAMReadOnlyAccess kepada Pengguna RAM di Konsol RAM. Untuk informasi lebih lanjut, lihat Berikan Izin kepada Pengguna RAM.

Langkah 3: Masuk ke Alibaba Cloud dan gunakan Hologres

Masuk ke Konsol dan HoloWeb

Setelah memberikan izin, pengguna dapat mengasumsikan Peran RAM untuk masuk dan mengakses Hologres.

  1. Gunakan Peran RAM untuk masuk ke Konsol Hologres guna mengelola Instans Hologres.

  2. Di panel navigasi sebelah kiri Konsol Hologres, klik Go To HoloWeb untuk membuka halaman HoloWeb. Anda kemudian dapat melakukan desain skema dan pengembangan data. Untuk informasi lebih lanjut, lihat Hubungkan ke HoloWeb dan Jalankan Kueri.

Masuk klien JDBC dan PSQL

Mulai dari Hologres V2.0, Hologres mendukung penentuan token keamanan dalam opsi koneksi protokol PostgreSQL. Anda dapat menggunakan token keamanan untuk masuk dan mengakses Hologres sebagai Peran RAM melalui klien PostgreSQL seperti Java Database Connectivity (JDBC) atau PSQL.

Sebelum mengakses Hologres, pastikan Anda telah menyelesaikan operasi berikut:

  • Anda telah menambahkan Peran RAM ke Instans Hologres dan memberikan izin. Untuk informasi lebih lanjut, lihat Langkah 2: Tambahkan Peran RAM ke Instans Hologres dan Berikan Izin.

  • Anda telah memanggil operasi API AssumeRole di RAM untuk memperoleh tripel token STS (AccessKeyId, AccessKeySecret, dan SecurityToken). Untuk informasi lebih lanjut, lihat Contoh Panggilan SDK STS. Berikut adalah contoh informasi token STS:

    "Credentials": {
        "SecurityToken": "CAISuwJ1q6Ft5B2yu****KiAA",
        "AccessKeyId": "STS.NTKaenSkmLhG4HpM5****76UV",
        "AccessKeySecret": "6itECZnhbG2RU6ktTSBSd6JxeLHKPWyBt****SS62",
        "Expiration": "2025-02-21T03:47:07Z"
      }

Setelah memastikan bahwa operasi selesai, Anda dapat terhubung dan mengakses Hologres dengan cara berikut.

  • Metode Koneksi JDBC Java: Untuk informasi lebih lanjut, lihat Hubungkan ke Hologres Menggunakan JDBC.

    • Contoh Kode 1: Muat tripel token STS untuk menyelesaikan verifikasi identitas menggunakan properti kelas PGProperty yang disediakan oleh PostgreSQL JDBC Driver.

      import org.postgresql.PGProperty;
      import java.sql.*;
      import java.io.IOException;
      import java.util.Properties;
      
      public class JdbcLinkHologres1 {
          public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException {
               // Contoh ini menunjukkan cara menyimpan ID AccessKey dan Rahasia AccessKey di variabel lingkungan. Anda juga dapat menyimpannya di file konfigurasi sesuai kebutuhan.
      	// Kami sangat menyarankan agar Anda tidak melakukan hardcoding ID AccessKey dan Rahasia AccessKey di kode Anda. Ini dapat menyebabkan kebocoran kunci.
              String accessKeyId = "ALIBABA_CLOUD_ACCESS_KEY_ID";
              String accessKeySecret = "ALIBABA_CLOUD_ACCESS_KEY_SECRET";
              String securityToken = "<SecurityToken>";
              String url = "jdbc:postgresql://<host>:<port>/<database>";
      
              Properties props = new Properties();
              PGProperty.USER.set(props, accessKeyId);
              PGProperty.PASSWORD.set(props, accessKeySecret);
              PGProperty.OPTIONS.set(props, "sts_token=" + securityToken);
      
              Class.forName("org.postgresql.Driver");
              Connection connection = DriverManager.getConnection(url, props);
      
              Statement statement = connection.createStatement();
              ResultSet resultSet = statement.executeQuery("SELECT * FROM tabletest");
              // Proses hasil
              while (resultSet.next()) {
                  System.out.println("Hasil: " + resultSet.getInt(1));
                  System.out.println("Hasil: " +  resultSet.getString(2));
              }
          }
      }
    • Contoh Kode 2: Enkode URL informasi SecurityToken dan tambahkan ke URL JDBC. Kemudian, saat mendapatkan koneksi Hologres melalui kelas driver, muat AccessKeyId dan AccessKeySecret untuk verifikasi identitas.

      import java.net.URLEncoder;
      import java.sql.*;
      import java.io.IOException;
      
      public class JdbcLinkHologres2 {
          public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException {
              // Contoh ini menunjukkan cara menyimpan ID AccessKey dan Rahasia AccessKey di variabel lingkungan. Anda juga dapat menyimpannya di file konfigurasi sesuai kebutuhan.
      	// Kami sangat menyarankan agar Anda tidak melakukan hardcoding ID AccessKey dan Rahasia AccessKey di kode Anda. Ini dapat menyebabkan kebocoran kunci.
              String accessKeyId = "ALIBABA_CLOUD_ACCESS_KEY_ID";
              String accessKeySecret = "ALIBABA_CLOUD_ACCESS_KEY_SECRET";
              String securityToken = "<SecurityToken>";
                          
              String url = "jdbc:postgresql://<host>:<port>/<database>";
              String urlWithOptions = url + "?options=sts_token=" + URLEncoder.encode(securityToken, "UTF-8");
      
              Class.forName("org.postgresql.Driver");
              Connection connection = DriverManager.getConnection(urlWithOptions, accessKeyId, accessKeySecret);
      
              Statement statement = connection.createStatement();
              ResultSet resultSet = statement.executeQuery("SELECT * FROM tabletest");
      
              // Proses hasil
              while (resultSet.next()) {
                  System.out.println("Hasil: " + resultSet.getInt(1));
                  System.out.println("Hasil: " +  resultSet.getString(2));
              }
          }
      }
  • Metode Koneksi Klien PSQL: Berikut adalah pernyataan untuk sistem Linux. Untuk informasi lebih lanjut, lihat Hubungkan ke Hologres Menggunakan Klien PSQL.

    PGUSER=<AccessKeyId> PGPASSWORD=<AccessKeySecret> PGOPTIONS="sts_token=<SecurityToken>" psql -h <host> -p <port> -d <database>

FAQ

Apa yang harus saya lakukan jika kesalahan otentikasi kata sandi gagal untuk pengguna "<AccessKeyId>" dilaporkan saat saya masuk sebagai Peran RAM?

Kesalahan ini menunjukkan bahwa AccessKeyId, AccessKeySecret, atau Security Token mungkin salah, atau pengguna masuk belum dibuat di Instans Hologres. Kami sarankan Anda melakukan pemeriksaan berikut secara berurutan:

  1. Periksa apakah pengguna masuk ada di instans. Jika tidak, tambahkan Peran RAM ke instans. Untuk informasi lebih lanjut, lihat Langkah 2: Tambahkan Peran RAM ke Instans Hologres dan Berikan Izin.

  2. Periksa apakah Security Token diteruskan dengan benar. Jika diteruskan melalui URL, itu harus diproses menggunakan URLEncoder.encode.

  3. Periksa apakah AccessKeyId, AccessKeySecret, dan Security Token benar.