全部产品
Search
文档中心

Serverless App Engine:Berikan izin kepada peran RAM

更新时间:Dec 05, 2025

Anda dapat memberikan izin kepada peran Resource Access Management (RAM) yang telah Anda buat untuk akun Alibaba Cloud tepercaya, layanan Alibaba Cloud, atau penyedia identitas (IdP). Topik ini menjelaskan cara membuat peran RAM untuk akun Alibaba Cloud tepercaya dan memberikan izin kepada peran RAM tersebut agar dapat mengakses resource Serverless App Engine (SAE) lintas akun.

Skenario

Enterprise A telah mengaktifkan SAE dan ingin memberi otorisasi kepada Enterprise B untuk mengelola sebagian bisnisnya. Persyaratannya sebagai berikut:

  • Enterprise A ingin fokus pada sistem bisnis dan hanya bertindak sebagai pemilik resource SAE. Enterprise A ingin memberi otorisasi kepada Enterprise B untuk mengelola sebagian bisnisnya, seperti penerbitan aplikasi, manajemen aplikasi, manajemen kebijakan auto scaling, start/stop aplikasi satu klik, serta pemantauan aplikasi.

  • Jika karyawan bergabung atau keluar dari Enterprise B, Enterprise A tidak perlu memodifikasi izin yang telah diberikan. Enterprise B dapat memberikan izin detail halus kepada pengguna RAM-nya atas resource milik Enterprise A.

  • Jika kontrak antara Enterprise A dan Enterprise B berakhir, Enterprise A dapat mencabut izin dari Enterprise B.

Langkah 1: Enterprise A membuat peran RAM

Enterprise A memiliki akun Alibaba Cloud bernama Akun A dan Enterprise B memiliki akun Alibaba Cloud bernama Akun B.

  • ID Akun A adalah 1234************, dan alias akunnya adalah company-a.

  • ID Akun B adalah 2345************, dan alias akunnya adalah company-b.

  1. Login ke Konsol RAM menggunakan Akun A.

  2. Di panel navigasi sebelah kiri, pilih Identities > Roles.

  3. Pada halaman Roles, klik Create Role.

    image

  4. Pada halaman Create Role, konfigurasikan parameter terkait.

    1. Atur Principal Type menjadi Cloud Account dan Principal Name menjadi Other Account. Lalu, masukkan UID untuk Akun B. Klik OK.

    2. Masukkan sae-admin di bidang Role Name dan klik OK.

      Penting

      Jika Anda ingin pengguna RAM tertentu—bukan semua pengguna RAM dalam akun Alibaba Cloud—untuk mengasumsikan peran RAM tersebut, gunakan salah satu metode berikut:

  5. Pada halaman Basic Information peran RAM, Anda dapat melihat nama peran RAM, waktu pembuatan, dan Nama Sumber Daya Alibaba Cloud (ARN).

    • Nama peran RAM: sae-admin.

    • ARN: acs:ram::1234************:role/sae-admin.

    • Kebijakan kepercayaan:

      Catatan

      Kebijakan ini menunjukkan bahwa hanya pengguna RAM dalam Akun B yang dapat mengasumsikan peran RAM tersebut.

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "acs:ram::2345************:root"
              ]
            }
          }
        ],
        "Version": "1"
      }

Langkah 2: Enterprise A memberikan izin kepada peran RAM

  1. Login ke Konsol RAM menggunakan Akun A.

  2. Di panel navigasi sebelah kiri, pilih Identities > Roles.

  3. Pada halaman Roles, temukan peran RAM yang ingin Anda kelola dan klik Grant Permission di kolom Actions.

    image

    Anda juga dapat memilih beberapa peran RAM sekaligus dan klik Grant Permission di bagian bawah daftar peran RAM untuk memberikan izin kepada beberapa peran RAM sekaligus.

  4. Pada panel Grant Permission, berikan izin kepada peran RAM tersebut.

    1. Konfigurasikan parameter Resource Scope.

      • Account: Otorisasi berlaku untuk akun Alibaba Cloud saat ini.

      • Resource Group: Otorisasi berlaku untuk kelompok sumber daya tertentu.

        Catatan

        Jika Anda memilih Resource Group untuk parameter Resource Scope, pastikan layanan cloud yang diperlukan mendukung kelompok sumber daya. Untuk informasi selengkapnya, lihat Layanan yang kompatibel dengan Resource Group.

    2. Konfigurasikan parameter Principal.

      Principal adalah peran RAM yang akan diberikan izin. Peran RAM saat ini dipilih secara otomatis.

    3. Konfigurasikan parameter Policy.

      Kebijakan adalah sekumpulan izin akses. Anda dapat memilih beberapa kebijakan sekaligus.

      • Kebijakan sistem: kebijakan yang dibuat oleh Alibaba Cloud. Anda dapat menggunakannya tetapi tidak dapat mengubahnya. Pembaruan versi kebijakan ini dikelola oleh Alibaba Cloud. Untuk informasi selengkapnya, lihat Layanan yang kompatibel dengan RAM.

        Catatan

        Sistem secara otomatis mengidentifikasi kebijakan sistem berisiko tinggi, seperti AdministratorAccess dan AliyunRAMFullAccess. Kami menyarankan agar Anda tidak memberikan izin yang tidak perlu dengan melampirkan kebijakan berisiko tinggi.

      • Kebijakan kustom: Anda dapat mengelola dan memperbarui kebijakan kustom sesuai kebutuhan bisnis Anda. Anda dapat membuat, memperbarui, dan menghapus kebijakan kustom. Untuk informasi selengkapnya, lihat Buat kebijakan kustom.

    4. Klik Grant permissions.

  5. Klik Close.

Langkah 3: Enterprise B membuat pengguna RAM

  1. Login ke Konsol RAM menggunakan Akun B.

  2. Di panel navigasi sebelah kiri, pilih Identities > Users.

  3. Pada halaman Users, klik Create User.image

  4. Pada bagian User Account Information di halaman Create User, konfigurasikan parameter berikut:

    • Logon Name: Nama login dapat terdiri hingga 64 karakter, dan boleh mengandung huruf, angka, titik (.), tanda hubung (-), dan garis bawah (_).

    • Display Name: Nama tampilan dapat terdiri hingga 128 karakter.

    • Tag: Klik ikon edit dan masukkan kunci tag serta nilai tag. Menambahkan tag membantu Anda mengkategorikan dan mengelola pengguna RAM.

    Catatan

    Anda dapat mengklik Add User untuk membuat beberapa pengguna RAM sekaligus.

  5. Pada bagian Access Mode, pilih mode akses dan konfigurasikan parameter yang diperlukan.

    Untuk keamanan yang lebih baik, kami menyarankan membuat pengguna terpisah untuk individu dan untuk aplikasi. Pilih hanya satu mode akses sesuai untuk menjaga pemisahan ini.

    • Console access

      Untuk pengguna yang merupakan individu, kami menyarankan mengaktifkan Console Access. Ini memungkinkan mereka login ke Konsol Manajemen Alibaba Cloud dengan username dan password. Jika Anda memilih Console Access, Anda harus mengonfigurasi parameter berikut:

      • Set Logon Password: Pilih Automatically Regenerate Default Password atau Reset Custom Password. Jika Anda memilih Reset Custom Password, Anda harus menentukan password. Password tersebut harus memenuhi persyaratan kompleksitas. Untuk informasi selengkapnya, lihat Konfigurasikan kebijakan kata sandi untuk pengguna RAM.

      • Password Reset: Tentukan apakah pengguna RAM wajib mengatur ulang password saat login berikutnya.

      • Enable MFA: Tentukan apakah akan mengaktifkan autentikasi multi-faktor (MFA) untuk pengguna RAM tersebut. Setelah Anda mengaktifkan MFA, Anda harus bind perangkat MFA ke pengguna RAM tersebut. Untuk informasi selengkapnya, lihat Bind perangkat MFA ke pengguna RAM.

    • Programmatic access

      Untuk pengguna yang mewakili aplikasi, aktifkan Using permanent AccessKey to access untuk pengguna RAM tersebut. Sistem akan menghasilkan ID AccessKey dan Rahasia AccessKey permanen untuk panggilan API. Untuk informasi selengkapnya, lihat Dapatkan Pasangan Kunci Akses.

      Penting
      • Rahasia AccessKey hanya ditampilkan sekali saat dibuat dan tidak dapat diambil kembali nanti. Oleh karena itu, Anda harus menyimpannya di lokasi yang aman.

      • Pasangan Kunci Akses adalah kredensial permanen untuk akses aplikasi. Jika pasangan Kunci Akses akun Alibaba Cloud bocor, resource yang dimiliki akun tersebut berisiko terpapar. Untuk mencegah risiko kebocoran kredensial, kami menyarankan Anda menggunakan token Layanan Token Keamanan (STS). Untuk informasi selengkapnya, lihat Praktik terbaik penggunaan kredensial akses untuk memanggil operasi API.

  6. Klik OK.

Langkah 4: Enterprise B memberikan izin kepada pengguna RAM

  1. Login ke Konsol RAM menggunakan Akun B.

  2. Di panel navigasi sebelah kiri, pilih Identities > Users.

  3. Pada halaman Users, temukan pengguna RAM yang diperlukan, lalu klik Add Permissions di kolom Actions.

    image

    Anda juga dapat memilih beberapa pengguna RAM sekaligus dan klik Add Permissions di bagian bawah halaman untuk memberikan izin kepada pengguna RAM tersebut sekaligus.

  4. Pada bagian Policy, masukkan AliyunSTSAssumeRoleAccess di kotak pencarian, pilih kebijakan tersebut untuk menambahkannya ke daftar Selected Policy di sebelah kanan, lalu klik Grant permissions.

  5. Klik Close.

Langkah 5: Akses resource lintas akun Alibaba Cloud

Layanan Token Keamanan (STS) memungkinkan Anda menggunakan kredensial temporary untuk mengakses resource Alibaba Cloud. Anda dapat menggunakan STS untuk memberikan token akses temporary dengan periode validitas dan izin akses kustom kepada entitas RAM seperti pengguna RAM dan peran RAM. Entitas RAM yang diotorisasi dapat menggunakan token STS untuk mengakses resource Alibaba Cloud dengan salah satu metode berikut:

Metode 1: Gunakan konsol untuk mengakses resource

Anda dapat login ke konsol sebagai pengguna RAM Enterprise B untuk mengakses resource SAE milik Enterprise A dengan langkah-langkah berikut:

  1. Login ke Konsol RAM sebagai pengguna RAM Akun B.

  2. Arahkan pointer ke gambar profil di pojok kanan atas halaman dan klik Switch Role.

  3. Pada halaman Switch Role, masukkan enterprise alias dan RAM role name milik Enterprise A. Lalu, klik Submit.

    Setelah login, pengguna RAM Enterprise B dapat mengelola resource SAE milik Enterprise A.

Metode 2: Gunakan SDK untuk mengakses resource

  1. Dapatkan kredensial akses. SDK untuk Java digunakan sebagai contoh di sini:

    1. Konfigurasikan variabel lingkungan untuk eksekusi kode.

      Nama variabel

      Nilai variabel

      ALIBABA_CLOUD_ACCESS_KEY_ID

      ID AccessKey pengguna RAM Enterprise B

      ALIBABA_CLOUD_ACCESS_KEY_SECRET

      Rahasia AccessKey pengguna RAM Enterprise B.

    2. Jalankan kode berikut. Untuk informasi selengkapnya, lihat STS SDK untuk Java dan AssumeRole.

      package com.aliyun.sample;
      
      import com.aliyun.sts20150401.models.AssumeRoleResponse;
      import com.aliyun.tea.TeaException;
      import com.google.gson.Gson;
      
      public class Sample {
      
          /**
           * description :
           * <p>
           * Inisialisasi klien Anda dengan kredensial.
           * </p>
           * 
           * @return Client
           * 
           * @throws Exception
           */
          public static com.aliyun.sts20150401.Client createClient() throws Exception {
              com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
              com.aliyun.teaopenapi.models.Config config =
                      new com.aliyun.teaopenapi.models.Config().setCredential(credential);
              // Tentukan titik akhir. Untuk informasi selengkapnya, kunjungi https://api.aliyun.com/product/Sts.
              config.endpoint = "sts.cn-hangzhou.aliyuncs.com";
              return new com.aliyun.sts20150401.Client(config);
          }
      
          public static void main(String[] args_) throws Exception {
      
              com.aliyun.sts20150401.Client client = Sample.createClient();
              com.aliyun.sts20150401.models.AssumeRoleRequest assumeRoleRequest =
                      new com.aliyun.sts20150401.models.AssumeRoleRequest();
              com.aliyun.teautil.models.RuntimeOptions runtime =
                      new com.aliyun.teautil.models.RuntimeOptions();
      
              // Ganti dengan RoleArn yang sebenarnya dan sesuaikan RoleSessionName.
              assumeRoleRequest.setRoleArn("acs:ram::1234************:role/sae-admin");
              assumeRoleRequest.setRoleSessionName("Alice");
      
              try {
                  // Tulis kode Anda sendiri untuk menampilkan tanggapan dari operasi API jika perlu.
                  AssumeRoleResponse response = client.assumeRoleWithOptions(assumeRoleRequest, runtime);
                  System.out.println(new Gson().toJson(response.body));
              } catch (TeaException error) {
                  // Tangani pengecualian dengan hati-hati dalam skenario bisnis yang sebenarnya, dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian dicetak untuk demonstrasi. 
                  // Tampilkan pesan kesalahan.
                  System.out.println(error.getMessage());
                  // Tampilkan URL untuk pemecahan masalah.
                  System.out.println(error.getData().get("Recommend"));
                  com.aliyun.teautil.Common.assertAsString(error.message);
              } catch (Exception _error) {
                  TeaException error = new TeaException(_error.getMessage(), _error);
                  // Tangani pengecualian dengan hati-hati dalam skenario bisnis yang sebenarnya dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian hanya diberikan sebagai referensi. 
                  // Tampilkan pesan kesalahan.
                  System.out.println(error.getMessage());
                  // Tampilkan URL untuk pemecahan masalah.
                  System.out.println(error.getData().get("Recommend"));
                  com.aliyun.teautil.Common.assertAsString(error.message);
              }
          }
      }
      
      Catatan

      Anda dapat memanggil API SAE untuk melakukan operasi dengan menggunakan metode permintaan HTTP, SDK, dan OpenAPI Explorer. Untuk informasi selengkapnya, lihat Daftar operasi berdasarkan fungsi.

      Kode contoh berikut memberikan contoh output yang diharapkan:

      {
        "requestId": "964E0EC5-575B-4FF5-8FD0-D4BD8025****",
        "assumedRoleUser": {
          "arn": "acs:ram::*************",
          "assumedRoleId": "*************"
        },
        "credentials": {
          "securityToken": "*************",
          "accessKeyId": "STS.*************",
          "accessKeySecret": "*************",
          "expiration": "2021-05-28T11:23:19Z"
        }
      }
  2. Informasi Pasangan Kunci Akses dalam output menunjukkan bahwa klien baru dihasilkan dalam kode Akun B. Hal ini menunjukkan bahwa pengguna RAM Akun B diberikan izin untuk melihat semua namespace SAE di wilayah China (Hangzhou) milik Akun A.

    1. Konfigurasikan variabel lingkungan untuk eksekusi kode.

      Nama variabel

      Nilai variabel

      ALIBABA_CLOUD_ACCESS_KEY_ID

      # Dapatkan credentials.accessKeyId dari hasil langkah sebelumnya.

      ALIBABA_CLOUD_ACCESS_KEY_SECRET

      # Dapatkan credentials.accessKeySecret dari hasil langkah sebelumnya.

      ALIBABA_CLOUD_SECURITY_TOKEN

      # Dapatkan credentials.securityToken dari hasil langkah sebelumnya.

    2. Jalankan kode berikut.

      package com.aliyun.sample;
      
      import com.aliyun.sae20190506.models.DescribeNamespacesResponse;
      import com.aliyun.tea.*;
      import com.google.gson.Gson;
      
      public class Sample {
      
          /**
           * deskripsi :
           * <p>
           * Inisialisasi klien Anda dengan kredensial.
           * </p>
           * 
           * @return Client
           * 
           * @throws Exception
           */
          public static com.aliyun.sae20190506.Client createClient() throws Exception {
              com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
              com.aliyun.teaopenapi.models.Config config =
                      new com.aliyun.teaopenapi.models.Config().setCredential(credential);
              // Untuk informasi selengkapnya tentang titik akhir, lihat https://api.aliyun.com/product/sae.
              config.endpoint = "sae.cn-hangzhou.aliyuncs.com";
              return new com.aliyun.sae20190506.Client(config);
          }
      
          public static void main(String[] args_) throws Exception {
      
              com.aliyun.sae20190506.Client client = Sample.createClient();
              com.aliyun.sae20190506.models.DescribeNamespacesRequest describeNamespacesRequest =
                      new com.aliyun.sae20190506.models.DescribeNamespacesRequest();
              com.aliyun.teautil.models.RuntimeOptions runtime =
                      new com.aliyun.teautil.models.RuntimeOptions();
              java.util.Map<String, String> headers = new java.util.HashMap<>();
      
              // Kustomisasi parameter opsional berikut sesuai kebutuhan:
              describeNamespacesRequest.setCurrentPage(1);
              describeNamespacesRequest.setPageSize(10);
      
      
              try {
                  DescribeNamespacesResponse response = client
                          .describeNamespacesWithOptions(describeNamespacesRequest, headers, runtime);
                  System.out.println(new Gson().toJson(response.body));
              } catch (TeaException error) {
                  // Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual, dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian dicetak untuk demonstrasi. 
                  // Tampilkan pesan kesalahan.
                  System.out.println(error.getMessage());
                  // Tampilkan URL untuk pemecahan masalah.
                  System.out.println(error.getData().get("Recommend"));
                  com.aliyun.teautil.Common.assertAsString(error.message);
              } catch (Exception _error) {
                  TeaException error = new TeaException(_error.getMessage(), _error);
                  // Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian disediakan hanya untuk referensi. 
                  // Tampilkan pesan kesalahan.
                  System.out.println(error.getMessage());
                  // Tampilkan URL untuk pemecahan masalah.
                  System.out.println(error.getData().get("Recommend"));
                  com.aliyun.teautil.Common.assertAsString(error.message);
              }
          }
      }
      

Mencabut izin dari peran RAM

Jika kontrak antara Enterprise A dan Enterprise B berakhir, Enterprise A hanya perlu mencabut izin dari peran RAM milik Enterprise B dan menghapus peran RAM tersebut. Dengan demikian, semua pengguna RAM Akun B tidak lagi dapat mengakses resource milik Akun A.

Catatan

Sebelum menghapus peran RAM, Anda harus melepas kebijakan yang dilampirkan pada peran RAM tersebut. Untuk informasi selengkapnya, lihat Mencabut izin dari peran RAM.

  1. Login ke Konsol RAM menggunakan Akun A.

  2. Di panel navigasi sebelah kiri, pilih Identities > Roles.

  3. Pada halaman Roles, temukan pengguna RAM yang ingin Anda hapus dan klik Delete Role di kolom Actions.

  4. Pada kotak dialog Delete Role, masukkan nama peran RAM tersebut dan klik Delete Role.

    Jika kebijakan dilampirkan pada peran RAM tersebut, kebijakan tersebut akan dilepas saat Anda menghapus peran RAM tersebut.

    Untuk peran RAM yang gagal dihapus, Anda dapat mengklik Role Deletion di pojok kanan atas daftar peran RAM untuk melihat detailnya.