Anda dapat menggunakan akun Alibaba Cloud milik Perusahaan A untuk membuat peran Resource Access Management (RAM), memberikan izin kepada peran tersebut, lalu mengizinkan Perusahaan B untuk mengasumsikan peran itu. Dengan demikian, akun Alibaba Cloud milik Perusahaan B atau pengguna RAM dalam akun tersebut dapat mengakses sumber daya Alibaba Cloud milik Perusahaan A.
Informasi latar belakang
Perusahaan A telah mengaktifkan ApsaraMQ for RocketMQ dan ingin mengizinkan Perusahaan B untuk menggunakan layanan tersebut.
Deskripsi:
Perusahaan A bertindak sebagai pemilik sumber daya dan fokus pada sistem bisnisnya, sekaligus memberikan otorisasi kepada Perusahaan B untuk menggunakan fitur konsol, seperti mengkueri sumber daya dan memantau layanan.
Perusahaan A tidak perlu mengubah pengaturan izin setiap kali ada karyawan yang bergabung atau keluar dari Perusahaan B. Perusahaan B dapat memberikan izin atas sumber daya Perusahaan A kepada pengguna RAM-nya sendiri untuk kontrol akses detail halus. Pengguna RAM tersebut dapat berupa karyawan atau aplikasi.
Jika kontrak antara Perusahaan A dan Perusahaan B berakhir, Perusahaan A dapat mencabut izin dari Perusahaan B.
Solusi
Perusahaan A perlu mengizinkan karyawan Perusahaan B untuk mengelola sumber daya ApsaraMQ for RocketMQ milik Perusahaan A. Misalkan Perusahaan A memiliki akun Alibaba Cloud A, dan Perusahaan B memiliki akun Alibaba Cloud B. Untuk memberikan izin atas sumber daya Perusahaan A kepada Perusahaan B, lakukan langkah-langkah berikut:
Langkah 1: Buat peran RAM dan berikan izin
Gunakan akun Alibaba Cloud A untuk membuat peran RAM, berikan izin sesuai kebutuhan kepada peran tersebut, lalu izinkan pengguna RAM dalam akun Alibaba Cloud B untuk mengasumsikan peran RAM tersebut.
Langkah 2: Akses sumber daya lintas akun Alibaba Cloud
Setelah izin yang diperlukan diberikan kepada peran RAM, pengguna RAM dalam akun Alibaba Cloud B dapat mengasumsikan peran tersebut untuk mengakses sumber daya akun Alibaba Cloud A. Pengguna RAM dapat mengakses sumber daya dengan salah satu cara berikut:
Akses sumber daya menggunakan SDK
Akses sumber daya menggunakan konsol
Akses sumber daya dengan memanggil operasi API
Langkah 1: Buat peran RAM dan berikan izin
Gunakan akun Alibaba Cloud milik Perusahaan A untuk masuk ke Konsol RAM dan buat peran RAM untuk akun Alibaba Cloud milik Perusahaan B.
Untuk informasi lebih lanjut, lihat Buat Peran RAM untuk Akun Alibaba Cloud Tepercaya.
Opsional: Gunakan akun Alibaba Cloud milik Perusahaan A untuk membuat kebijakan kustom untuk peran RAM baru.
Untuk informasi lebih lanjut, lihat Buat Kebijakan Kustom.
Saat ini, ApsaraMQ for RocketMQ mendukung pengaturan izin di tingkat instans, topik, dan kelompok. Untuk informasi selengkapnya, lihat Kebijakan kustom untuk ApsaraMQ for RocketMQ.
Secara default, peran baru tidak memiliki izin apa pun. Perusahaan A harus memberikan izin kepada peran tersebut dengan menyambungkan kebijakan sistem atau kebijakan kustom.
Untuk informasi selengkapnya, lihat Berikan izin kepada pengguna RAM.
Gunakan akun Alibaba Cloud milik Perusahaan B untuk masuk ke Konsol RAM dan buat pengguna RAM.
Untuk informasi selengkapnya, lihat Buat pengguna RAM.
Perusahaan B menyambungkan izin AliyunSTSAssumeRoleAccess ke pengguna RAM tersebut.
Untuk informasi lebih lanjut, lihat Berikan Izin kepada Pengguna RAM.
Perusahaan B harus menyambungkan izin AliyunSTSAssumeRoleAccess ke pengguna RAM dalam akun Alibaba Cloud B agar pengguna tersebut dapat mengasumsikan peran RAM yang dibuat oleh Perusahaan A.
Langkah 2: Akses sumber daya lintas akun Alibaba Cloud
Akses sumber daya menggunakan SDK
Pengguna RAM milik Perusahaan B dapat menggunakan SDK untuk mengakses sumber daya ApsaraMQ for RocketMQ milik Perusahaan A guna mengirim dan menerima pesan. Anda dapat mengonfigurasi SDK dengan salah satu dari dua cara berikut:
Konfigurasikan token STS: Untuk menggunakan token Security Token Service (STS), berikan ID AccessKey, rahasia AccessKey, dan token keamanan dalam kode SDK. Token keamanan bersifat sementara dan harus diperbarui secara berkala. Untuk mendapatkan token keamanan sementara dari STS, lihat AssumeRole.
PentingMetode ini hanya tersedia untuk SDK ApsaraMQ for RocketMQ untuk Java versi 1.7.8.Final atau lebih baru.
Untuk mendapatkan ID AccessKey dan rahasia AccessKey, lihat Buat AccessKey.
Contoh konfigurasi token STS
Saat menginisialisasi klien ApsaraMQ for RocketMQ, berikan ID AccessKey, rahasia AccessKey, dan token keamanan yang telah diperoleh untuk properti-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 untuk STS. properties.put(PropertyKeyConst.AccessKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")); // Rahasia AccessKey untuk STS. properties.put(PropertyKeyConst.SecretKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // Token keamanan untuk STS. 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 kedaluwarsa, panggil metode updateCredential untuk 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 untuk STS. properties.put(PropertyKeyConst.AccessKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")); // Rahasia AccessKey untuk STS. properties.put(PropertyKeyConst.SecretKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // Token keamanan untuk STS. properties.put(PropertyKeyConst.SecurityToken, System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")); client.updateCredential(properties);
Konfigurasikan peran RAM instans ECS: Untuk menggunakan peran RAM instans ECS, Anda tidak perlu mengonfigurasi ID AccessKey, rahasia AccessKey, atau token keamanan dalam SDK. Cukup berikan nama peran RAM. Hal ini menyederhanakan konfigurasi kode. Namun, Anda harus terlebih dahulu menyambungkan peran RAM ke instans ECS tempat aplikasi Anda diterapkan agar instans tersebut mendapatkan izin dari peran RAM. Untuk informasi selengkapnya, lihat Sambungkan peran RAM instans.
PentingMetode ini hanya tersedia untuk SDK ApsaraMQ for RocketMQ untuk Java versi 1.8.7.3.Final atau lebih baru.
Contoh konfigurasi peran RAM instans ECS
Properties properties = new Properties(); // Nama peran RAM yang telah Anda buat dan sambungkan ke instans ECS. properties.put(PropertyKeyConst.RAM_ROLE_NAME,"XXX");
Akses sumber daya menggunakan konsol
Pengguna RAM milik Perusahaan B dapat mengikuti langkah-langkah berikut untuk masuk ke konsol dan mengakses sumber daya ApsaraMQ for RocketMQ milik Perusahaan A.
Buka halaman masuk pengguna RAM di browser.
Pada halaman RAM User Logon, masukkan nama masuk pengguna RAM dan klik Next. Lalu, masukkan kata sandi pengguna RAM dan klik Log On.
CatatanNama masuk pengguna RAM berformat
<$username>@<$AccountAlias>atau<$username>@<$AccountAlias>.onaliyun.com.<$AccountAlias>adalah alias akun. Jika tidak ada alias akun yang ditetapkan, ID akun Alibaba Cloud digunakan secara default.Di pojok kanan atas Konsol Manajemen Alibaba Cloud, arahkan penunjuk tetikus ke gambar profil dan klik Switch Identity.
Pada halaman Switch Role, masukkan Enterprise Alias, Default Domain Name, atau Alibaba Cloud Account UID milik Perusahaan A, serta Role Name. Lalu, klik Submit.
Anda kini dapat mengelola sumber daya ApsaraMQ for RocketMQ milik Perusahaan A.
Akses Sumber Daya dengan Memanggil Operasi API
Pengguna RAM milik Perusahaan B dapat memanggil operasi API ApsaraMQ for RocketMQ untuk mengakses sumber daya milik Perusahaan A. Untuk informasi selengkapnya tentang cara memanggil operasi API, lihat Panggil operasi API.