Topik ini menjelaskan cara memberikan otorisasi kepada MaxCompute di satu Akun Alibaba Cloud untuk mengakses resource Tablestore di akun yang berbeda.
Prasyarat
Untuk mengaktifkan akses lintas akun, Anda memerlukan dua Akun Alibaba Cloud. Akun A, yang memiliki resource Tablestore, memberikan izin kepada Akun B sehingga MaxCompute di Akun B dapat mengakses data di Akun A. Tabel berikut merinci akun yang digunakan dalam contoh ini.
Informasi dalam topik ini diberikan sebagai contoh. Ganti nilai contoh dengan informasi aktual Anda.
|
Item |
Tablestore |
MaxCompute |
|
Nama Akun Alibaba Cloud |
Akun A |
Akun B |
|
UID |
1234567890**** |
5678901234**** |
Sebelum menggunakan MaxCompute untuk mengakses resource Tablestore lintas akun, selesaikan langkah-langkah berikut:
-
Untuk Akun B, aktifkan MaxCompute pada halaman detail produk MaxCompute dan buat ruang kerja. Untuk informasi selengkapnya, lihat Buat ruang kerja.
-
Dapatkan Pasangan Kunci Akses untuk kedua Akun A dan Akun B. Untuk informasi selengkapnya, lihat Dapatkan Pasangan Kunci Akses.
-
Di Akun A, buat Peran RAM dengan Alibaba Cloud account sebagai entitas tepercaya, lalu konfigurasikan kebijakan kepercayaannya. Untuk informasi selengkapnya, lihat Membuat Peran RAM untuk akun Alibaba Cloud dan Mengubah kebijakan kepercayaan Peran RAM.
CatatanDalam kebijakan tersebut,
5678901234****adalah UID Akun B.Kebijakan kepercayaan contoh berikut memungkinkan layanan MaxCompute di Akun B untuk mengasumsikan Peran RAM ini.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "5678901234****@odps.aliyuncs.com" ] } } ], "Version": "1" } -
Catat Nama Sumber Daya Alibaba Cloud (ARN) dari Peran RAM AliyunODPSRoleForOtherUser dari Akun A. Anda akan memerlukan ARN peran ini saat membuat tabel eksternal. Contoh:
acs:ram::1234567890****:role/aliyunodpsroleforotheruser.
-
Buat kebijakan dan sambungkan ke Peran RAM AliyunODPSRoleForOtherUser di Akun A. Untuk informasi selengkapnya, lihat Buat kebijakan kustom dan Kelola izin untuk Peran RAM.
Kebijakan contoh berikut memberikan izin baca dan tulis kepada Peran RAM pada instans bernama
cap1dan semua tabelnya. Instans tersebut dimiliki oleh Akun A dan berlokasi di Wilayah China (Hangzhou).{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ots:*", "Resource": [ "acs:ots:cn-hangzhou:1234567890****:instance/cap1", "acs:ots:cn-hangzhou:1234567890****:instance/cap1/table/*" ], "Condition": {} } ] }Untuk informasi selengkapnya tentang kebijakan kustom, lihat Kebijakan RAM kustom.
-
Di Konsol Tablestore, buat instans dan tabel data. Untuk informasi selengkapnya, lihat Buat instans dan Buat tabel data.
Dalam contoh ini, instans dan tabel data Tablestore dikonfigurasi sebagai berikut:
-
Nama instans: cap1
-
Nama tabel data: vehicle_track
-
Kunci utama: vid (integer), gt (integer)
-
Titik akhir:
https://cap1.cn-hangzhou.ots-internal.aliyuncs.comCatatanSaat menggunakan MaxCompute untuk mengakses Tablestore, kami menyarankan agar Anda menggunakan titik akhir pribadi instans Tablestore.
-
Pastikan kontrol akses jaringan instans diatur ke Any Network.
-
Gunakan MaxCompute untuk mengakses Tablestore
Prosedur akses lintas akun identik dengan akses dalam akun yang sama, kecuali Anda harus menentukan ARN peran saat membuat tabel eksternal.
Di Akun B, buat tabel eksternal di MaxCompute dan tentukan ARN peran yang telah Anda buat di bagian Prasyarat untuk memberikan akses ke Tablestore.
CREATE EXTERNAL TABLE ads_log_ots_pt_external
(
vid bigint,
gt bigint,
longitude double,
latitude double,
distance double,
speed double,
oil_consumption double
)
STORED BY 'com.aliyun.odps.TableStoreStorageHandler'
WITH SERDEPROPERTIES (
'tablestore.columns.mapping'=':vid, :gt, longitude, latitude, distance, speed, oil_consumption',
'tablestore.table.name'='vehicle_track',
'odps.properties.rolearn'='acs:ram::1234567890****:role/aliyunodpsroleforotheruser'
)
LOCATION 'tablestore://cap1.cn-hangzhou.ots-internal.aliyuncs.com'
USING 'odps-udf-example.jar'