Buat role Resource Access Management (RAM) di akun Alibaba Cloud Perusahaan A, berikan izin kepada role tersebut, dan konfigurasikan agar dapat diasumsikan oleh akun Alibaba Cloud atau pengguna RAM Perusahaan B. Hal ini memungkinkan pengguna dari Perusahaan B mengakses sumber daya Alibaba Cloud milik Perusahaan A.
Latar Belakang
Perusahaan A menggunakan Message Queue for Apache RocketMQ dan ingin mendelegasikan tugas operasional tertentu kepada Perusahaan B.
Persyaratan:
Perusahaan A ingin tetap menjadi pemilik sumber daya tetapi mendelegasikan tugas berbasis konsol, seperti melakukan kueri terhadap sumber daya dan pemantauan, kepada Perusahaan B.
Perusahaan A ingin menghindari pengelolaan izin ketika karyawan Perusahaan B bergabung atau keluar. Perusahaan B harus dapat mengontrol pengguna RAM-nya sendiri (karyawan atau aplikasi) yang dapat mengakses sumber daya Perusahaan A serta menentukan izin spesifik mereka.
Perusahaan A harus dapat mencabut akses Perusahaan B kapan saja, misalnya jika kontrak kerja sama berakhir.
Solusi
Untuk memenuhi persyaratan tersebut, Perusahaan A memberikan izin kepada karyawan Perusahaan B untuk mengakses sumber daya Message Queue for Apache RocketMQ. Diasumsikan bahwa Perusahaan A dan Perusahaan B masing-masing memiliki akun Alibaba Cloud. Panduan ini menjelaskan prosedur konfigurasi akses lintas akun:
Langkah 1: Buat dan otorisasi role RAM
Di akun Perusahaan A, Anda membuat role RAM, menyambungkan kebijakan yang diperlukan, dan mengonfigurasi kebijakan kepercayaan yang memungkinkan pengguna RAM di akun Perusahaan B mengasumsikan role tersebut.
Langkah 2: Akses sumber daya lintas akun
Setelah role RAM dikonfigurasi, pengguna RAM di akun Perusahaan B dapat mengasumsikan role tersebut untuk mendapatkan izin sementara. Mereka kemudian dapat mengakses sumber daya di akun Perusahaan A dengan salah satu cara berikut:
Menggunakan SDK
Menggunakan konsol
Melakukan panggilan API
Langkah 1: Buat dan otorisasi role RAM
Menggunakan akun Alibaba Cloud Perusahaan A, login ke RAM console dan buat role RAM untuk akun Alibaba Cloud Perusahaan B.
Untuk informasi lebih lanjut, lihat Buat role RAM untuk akun Alibaba Cloud tepercaya.
Opsi: Di akun Perusahaan A, buat kebijakan kustom untuk role RAM.
Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.
Saat ini, Message Queue for Apache RocketMQ mendukung izin tingkat instans, tingkat topik, dan tingkat grup. Untuk informasi lebih lanjut, lihat Kebijakan kustom untuk Message Queue for Apache RocketMQ.
Secara default, role RAM baru tidak memiliki izin apa pun. Perusahaan A harus memberikan izin kepada role tersebut dengan menyambungkan kebijakan sistem atau kebijakan kustom.
Untuk informasi lebih lanjut, lihat Berikan izin kepada pengguna RAM.
Menggunakan akun Alibaba Cloud Perusahaan B, login ke RAM console dan buat pengguna RAM.
Untuk informasi lebih lanjut, lihat Buat pengguna RAM.
Di akun Perusahaan B, berikan izin AliyunSTSAssumeRoleAccess kepada pengguna RAM.
Untuk informasi lebih lanjut, lihat Berikan izin kepada pengguna RAM.
Anda harus memberikan izin
AliyunSTSAssumeRoleAccesskepada pengguna RAM di akun Perusahaan B. Hal ini memungkinkan pengguna tersebut mengasumsikan role RAM yang dibuat di akun Perusahaan A.
Langkah 2: Akses sumber daya lintas akun
Akses sumber daya menggunakan SDK
Pengguna RAM di akun Perusahaan B dapat menggunakan SDK untuk mengakses sumber daya Message Queue for Apache RocketMQ di akun Perusahaan A. Pilih salah satu dari dua metode konfigurasi berikut:
Konfigurasi token STS: Metode ini memerlukan penyediaan ID AccessKey, Rahasia AccessKey, dan token keamanan sementara dari Security Token Service (STS). Token keamanan sementara ini akan kedaluwarsa dan harus diperbarui. Untuk informasi lebih lanjut tentang cara memperoleh token keamanan sementara, lihat AssumeRole.
PentingMetode token STS hanya didukung oleh Java SDK untuk Message Queue for Apache RocketMQ versi 1.7.8.Final dan yang lebih baru.
Untuk memperoleh ID AccessKey dan Rahasia AccessKey, lihat Buat pasangan Kunci Akses.
Contoh: Konfigurasi token STS
Saat menginisialisasi klien untuk Message Queue for Apache RocketMQ, tentukan ID AccessKey, Rahasia AccessKey, dan token keamanan sementara yang telah diperoleh dalam properti berikut:
Properties properties = new Properties(); // Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, dan ALIBABA_CLOUD_SECURITY_TOKEN telah disetel. // ID AccessKey yang diperoleh dari STS. properties.put(PropertyKeyConst.AccessKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")); // Rahasia AccessKey yang diperoleh dari STS. properties.put(PropertyKeyConst.SecretKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // Token keamanan sementara. properties.put(PropertyKeyConst.SecurityToken, System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")); // Properti lainnya. properties.put(PropertyKeyConst.NAMESRV_ADDR, "XXX"); ...... Producer client = ONSFactory.createProducer(properties); client.start();Saat token keamanan sementara kedaluwarsa, panggil metode
updateCredentialuntuk memperbaruinya.Properties properties = new Properties(); // Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, dan ALIBABA_CLOUD_SECURITY_TOKEN telah disetel. // ID AccessKey yang diperoleh dari STS. properties.put(PropertyKeyConst.AccessKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")); // Rahasia AccessKey yang diperoleh dari STS. properties.put(PropertyKeyConst.SecretKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // Token keamanan sementara. properties.put(PropertyKeyConst.SecurityToken, System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")); client.updateCredential(properties);
Konfigurasi role RAM instans ECS: Jika aplikasi Anda berjalan pada instans Elastic Compute Service (ECS), Anda dapat menggunakan metode ini. Metode ini menghindari hardcoding kredensial dalam SDK Anda. Sebagai gantinya, Anda hanya perlu menyediakan nama role RAM. Namun, Anda harus terlebih dahulu menyambungkan role RAM ini ke instans ECS aplikasi Anda. Untuk informasi lebih lanjut, lihat Sambungkan role RAM instans.
PentingMetode role RAM instans ECS hanya didukung oleh Java SDK untuk Message Queue for Apache RocketMQ versi 1.8.7.3.Final dan yang lebih baru.
Contoh: Konfigurasi role RAM instans ECS
Properties properties = new Properties(); // Nama role RAM yang telah Anda buat dan sambungkan ke instans ECS. properties.put(PropertyKeyConst.RAM_ROLE_NAME,"XXX");
Akses sumber daya dari konsol
Pengguna RAM di akun Perusahaan B dapat mengikuti langkah-langkah berikut untuk mengakses sumber daya Message Queue for Apache RocketMQ milik Perusahaan A dari konsol:
Buka halaman RAM User Logon di browser.
Pada halaman RAM User Logon, masukkan nama login pengguna RAM, klik Next, masukkan password, lalu klik Log On.
CatatanNama login menggunakan format
<$username>@<$AccountAlias>atau<$username>@<$AccountAlias>.onaliyun.com.<$AccountAlias>adalah alias akun Alibaba Cloud. Jika alias tidak disetel, ID akun Alibaba Cloud akan digunakan secara default.Setelah login ke konsol Alibaba Cloud, arahkan kursor ke gambar profil di pojok kanan atas dan klik Switch Identity.
Pada halaman Switch Role, masukkan Enterprise Alias, Default Domain, atau Account UID untuk akun Perusahaan A. Kemudian, masukkan Role Name dan klik Submit.
Anda sekarang dapat mengelola sumber daya Message Queue for Apache RocketMQ di akun Perusahaan A.
Akses sumber daya menggunakan panggilan API
Pengguna RAM di akun Perusahaan B dapat mengakses sumber daya di akun Perusahaan A dengan melakukan panggilan API ke Message Queue for Apache RocketMQ. Untuk informasi lebih lanjut tentang cara melakukan panggilan API, lihat Lakukan permintaan API.