MaxCompute terintegrasi dengan RAM dan STS untuk mengaktifkan akses aman ke sumber data eksternal. Topik ini menjelaskan metode otorisasi yang menggunakan RAM dan STS untuk berbagai skenario.
Otorisasi peran RAM untuk OSS
Agar tabel eksternal MaxCompute dapat mengakses data di OSS secara langsung, pemilik tabel harus menentukan peran RAM dengan izin OSS yang diperlukan dalam definisi tabel eksternal tersebut. Setelah peran dikaitkan, pemilik dapat memberikan pengguna akses ke tabel eksternal tersebut. Anda dapat memberikan izin dengan cara berikut:
Otorisasi satu klik (Direkomendasikan): Jika MaxCompute dan OSS berada dalam akun Alibaba Cloud yang sama, login ke akun Anda dan klik di sini untuk menyelesaikan otorisasi satu klik.
CatatanAliyunODPSDefaultRolesecara default memberikan izin yang luas dan hanya untuk referensi. Anda harus mengonfigurasi kebijakan akses dan kepercayaan di Konsol RAM agar sesuai dengan izin yang dibutuhkan oleh tabel eksternal MaxCompute atau sumber data eksternal Anda.Otorisasi kustom: Metode ini dapat digunakan baik untuk skenario dalam satu akun maupun lintas akun. Ikuti langkah-langkah berikut:
Jika MaxCompute dan OSS berada dalam akun yang sama, atur Service dalam kebijakan kepercayaan menjadi
odps.aliyuncs.com.Jika MaxCompute dan OSS berada dalam akun yang berbeda, atur Service dalam kebijakan kepercayaan menjadi
<ID-akun-pemilik-MaxCompute>@odps.aliyuncs.com. Anda dapat memperoleh ID akun pemilik MaxCompute di halaman Ikhtisar Akun.
Buat peran RAM.
Login ke Konsol RAM dan buat peran dari halaman Peran RAM. Misalnya, Anda dapat memberi nama peran tersebut
oss-admin. Untuk informasi lebih lanjut, lihat Buat peran RAM untuk akun Alibaba Cloud tepercaya.
Ubah kebijakan kepercayaan peran RAM.
Login ke Konsol RAM.
Di bilah navigasi kiri, pilih .
Di halaman Roles, klik Role Name yang dituju untuk membuka halaman detail peran.
Di tab Trust Policy, klik Edit Trust Policy, lalu di halaman Edit Trust Policy, pilih tab JSON Editor.
Ganti kebijakan yang ada dengan kode berikut:
Akun yang sama
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "odps.aliyuncs.com" ] } } ], "Version": "1" }Lintas akun
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<ID-akun-pemilik-MaxCompute>@odps.aliyuncs.com" ] } } ], "Version": "1" }Setelah selesai, klik OK.
Buat kebijakan akses.
Di halaman Policies di Konsol RAM, buat kebijakan akses. Misalnya, Anda dapat memberi nama
AliyunODPSRolePolicy.Kebijakan berikut memberikan izin umum OSS. Anda juga dapat menyesuaikan izin tersebut. Untuk informasi lebih lanjut, lihat Buat kebijakan akses kustom.
{ "Version": "1", "Statement": [ { "Action": [ "oss:ListBuckets", "oss:GetObject", "oss:ListObjects", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts" ], "Resource": "*", "Effect": "Allow" } ] }Sambungkan kebijakan akses ke peran RAM yang baru saja Anda buat.
Login ke Konsol RAM.
Di bilah navigasi kiri, pilih .
Di halaman Roles, klik Role Name yang dituju untuk membuka halaman detail peran.
Di tab Manage Permissions, klik Create Authorization. Di panel Create Authorization yang muncul, pilih kebijakan yang akan diberikan kepada peran tersebut, lalu klik OK.
Untuk informasi lebih lanjut, lihat Kelola izin peran RAM.
Otorisasi peran RAM untuk Tablestore
Agar tabel eksternal MaxCompute dapat mengakses data di Tablestore secara langsung, pemilik tabel harus menentukan peran RAM dengan izin Tablestore yang diperlukan dalam definisi tabel eksternal tersebut. Setelah peran dikaitkan, pemilik dapat memberikan pengguna akses ke tabel eksternal tersebut. Anda dapat memberikan izin dengan cara berikut:
Otorisasi satu klik (Direkomendasikan): Jika MaxCompute dan Tablestore berada dalam akun Alibaba Cloud yang sama, login ke akun Anda dan klik di sini untuk menyelesaikan otorisasi satu klik.
Otorisasi kustom: Metode ini berlaku untuk skenario lintas akun di mana MaxCompute dan Tablestore berada dalam akun yang berbeda.
Buat peran RAM.
Login ke Konsol RAM dengan akun Tablestore dan buat peran dari halaman Peran RAM. Misalnya, Anda dapat memberi nama peran tersebut
tablestore-access-role.Untuk informasi lebih lanjut, lihat Buat peran RAM untuk akun Alibaba Cloud tepercaya.
Ubah kebijakan kepercayaan peran RAM.
Jika MaxCompute dan Tablestore berada dalam akun yang berbeda, gunakan pengaturan berikut untuk mengaktifkan akses lintas akun dari MaxCompute ke Tablestore.
Login ke Konsol RAM.
Di bilah navigasi kiri, pilih .
Di halaman Roles, klik Role Name yang dituju untuk membuka halaman detail peran.
Di tab Trust Policy, klik Edit Trust Policy, lalu di halaman Edit Trust Policy, pilih tab JSON Editor.
Konfigurasikan kebijakan berikut:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<ID-akun-pemilik-MaxCompute>@odps.aliyuncs.com" ] } } ], "Version": "1" }Placeholder
<ID-akun-pemilik-MaxCompute>merepresentasikan ID akun Alibaba Cloud yang memiliki proyek MaxCompute.
Buat kebijakan akses.
Di halaman Policies di Konsol RAM, buat kebijakan akses. Misalnya, Anda dapat memberi nama
AliyunODPSRolePolicy.Kebijakan berikut memberikan izin umum Tablestore. Anda juga dapat menyesuaikan izin tersebut. Untuk informasi lebih lanjut, lihat Buat kebijakan akses kustom.
{ "Version": "1", "Statement": [ { "Action": [ "ots:ListTable", "ots:DescribeTable", "ots:GetRow", "ots:PutRow", "ots:UpdateRow", "ots:DeleteRow", "ots:GetRange", "ots:BatchGetRow", "ots:BatchWriteRow", "ots:ComputeSplitPointsBySize" ], "Resource": "*", "Effect": "Allow" } ] }Sambungkan kebijakan akses
AliyunODPSRolePolicyke peran RAM yang telah Anda buat.Login ke Konsol RAM.
Di bilah navigasi kiri, pilih .
Di halaman Roles, klik Role Name yang dituju untuk membuka halaman detail peran.
Di tab Manage Permissions, klik Create Authorization. Di panel Create Authorization yang muncul, pilih kebijakan yang akan diberikan kepada peran tersebut, lalu klik OK.
Untuk informasi lebih lanjut, lihat Kelola izin peran RAM.
Otorisasi peran RAM untuk Hologres
Agar tabel eksternal MaxCompute dapat mengakses data di Hologres secara langsung, pemilik tabel harus menentukan peran RAM dengan izin Hologres yang diperlukan dalam definisi tabel eksternal tersebut. Setelah peran dikaitkan, pemilik dapat memberikan pengguna akses ke tabel eksternal ini. Ikuti langkah-langkah berikut untuk mengonfigurasi izin yang diperlukan:
Buat peran RAM
Buat peran RAM untuk mendapatkan Nama Sumber Daya Alibaba Cloud (ARN)-nya. ARN diperlukan untuk mengonfigurasi autentikasi STS saat Anda membuat tabel eksternal. Pilih jenis entitas tepercaya berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, akun Alibaba Cloud merupakan entitas tepercaya.
Akun Alibaba Cloud:
Pengguna RAM yang termasuk dalam akun Alibaba Cloud dapat mengasumsikan peran RAM untuk mengakses sumber daya cloud. Untuk informasi lebih lanjut, lihat Buat peran RAM untuk akun Alibaba Cloud tepercaya.
Penyedia identitas:
Anda dapat mengonfigurasi Single Sign-On (SSO) untuk memungkinkan pengguna dari sistem identitas perusahaan login ke konsol Alibaba Cloud. Hal ini membantu memenuhi persyaratan login dan otentikasi pengguna terpadu. Untuk informasi lebih lanjut, lihat Buat peran RAM untuk penyedia identitas tepercaya.
Lakukan langkah-langkah berikut:
Login ke Konsol RAM.
Di bilah navigasi kiri, pilih .
Di halaman Roles, klik Create Role.
Ubah kebijakan kepercayaan
Di halaman Roles, klik Role Name yang dituju untuk membuka halaman detail peran.
Di tab Trust Policy, klik Edit Trust Policy, lalu di halaman Edit Trust Policy, pilih tab JSON Editor.
Ubah kebijakan kepercayaan seperti pada contoh berikut.
Isi kebijakan kepercayaan bervariasi berdasarkan jenis entitas tepercaya. Ganti
<UID>dengan ID akun Alibaba Cloud Anda. Anda dapat memperoleh ID akun Anda di halaman Informasi Pengguna.Akun Alibaba Cloud
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<UID>:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<UID>@odps.aliyuncs.com" ] } } ], "Version": "1" }Penyedia identitas
{ "Statement": [ { "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "saml:recipient": "https://signin.aliyun.com/saml-role/sso" } }, "Effect": "Allow", "Principal": { "Federated": [ "acs:ram::<UID>:saml-provider/IDP" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<UID>@odps.aliyuncs.com" ] } } ], "Version": "1" }
Tambahkan peran RAM ke instans Hologres dan berikan izin
Peran RAM memerlukan izin developer pada instans Hologres untuk mengakses sumber dayanya.
Secara default, peran RAM tidak dapat melihat atau mengelola instans di Konsol Manajemen Hologres. Pemilik akun Alibaba Cloud harus memberikan izin yang diperlukan kepada peran tersebut.
Untuk menambahkan peran RAM ke instans Hologres, ikuti langkah-langkah berikut:
Konsol Hologres
Login ke Konsol Manajemen Hologres, lalu di pojok kiri atas, pilih wilayah.
Di panel navigasi kiri, klik Instances.
Di halaman Instances, klik nama instans yang dituju.
Di halaman detail instans, di panel navigasi kiri, klik Account Management.
Di halaman User Management, klik Add User.
Di kotak dialog Add User yang muncul, konfigurasikan parameter dan klik OK.
Atur Role menjadi
AliyunODPSDefaultRole.Atur Member Role menjadi Regular user.
Di halaman User Management, di panel navigasi kiri, klik DB Authorization.
Di halaman Database Authorization, klik Create Database.
Di kotak dialog Create Database, konfigurasikan parameter yang diperlukan, lalu klik OK.
Atur Policies menjadi SPM.
Di halaman DB Authorization, klik Authorize User di kolom Actions untuk database yang dituju.
Klik Grant Permissions di pojok kanan atas. Di kotak dialog Grant Permissions yang muncul, konfigurasikan User dan User Group.
Users Pilih pengguna RAM yang ingin Anda konfigurasi.
Untuk Groups, pilih Developer.
Konsol RAM
Sambungkan kebijakan akses
AliyunODPSRolePolicyke peran RAM yang telah Anda buat.Login ke Konsol RAM.
Di bilah navigasi kiri, pilih .
Di halaman Users, klik User Logon Name/Display Name yang dituju untuk membuka halaman detail pengguna.
Di halaman detail pengguna, klik tab Manage Permissions.
Di tab Manage Permissions, pilih Individual, lalu klik Grant Permission.
Di panel Grant Permission, pilih kebijakan yang akan diberikan kepada pengguna, lalu klik OK.
Untuk kebijakan akses, pilih
AliyunRAMReadOnlyAccess.Untuk informasi lebih lanjut, lihat Berikan izin kepada pengguna RAM.
SQL
Untuk informasi tentang pernyataan SQL untuk otorisasi, lihat model izin Hologres.
Hologres juga mendukung autentikasi tanda tangan ganda. Untuk informasi lebih lanjut, lihat tabel eksternal Hologres.
Otorisasi peran RAM untuk DLF dan OSS
Saat membangun danau data terpadu dengan MaxCompute, DLF, dan OSS, Anda harus terlebih dahulu membuat sumber data eksternal dengan mengaitkannya ke peran RAM yang memiliki izin akses data yang diperlukan untuk DLF dan OSS. Anda kemudian dapat menggunakan pengaturan ini untuk membuat skema eksternal guna mengakses data tersebut. Untuk memberikan izin kepada pengguna lain pada tabel dalam skema eksternal, lihat Berikan izin pada tabel eksternal federasi dalam skema eksternal. Anda dapat memberikan izin dengan cara berikut:
Otorisasi satu klik (Direkomendasikan): Jika akun yang digunakan untuk membuat proyek MaxCompute sama dengan akun yang digunakan untuk men-deploy DLF dan OSS, Anda dapat mengklik Otorisasi DLF dan OSS untuk menyelesaikan otorisasi.
Otorisasi kustom: Anda dapat menggunakan metode ini untuk skenario dalam satu akun maupun lintas akun. Ikuti langkah-langkah berikut:
Jika proyek MaxCompute dan DLF berada dalam akun yang sama, atur Service dalam kebijakan kepercayaan menjadi
odps.aliyuncs.com.Jika proyek MaxCompute dan DLF berada dalam akun yang berbeda, atur Service dalam kebijakan kepercayaan menjadi
<ID-akun-pemilik-proyek-MaxCompute>@odps.aliyuncs.com. Anda dapat memperoleh ID akun pemilik MaxCompute di halaman Ikhtisar Akun.
Login ke Konsol RAM dan buat peran RAM untuk akun Alibaba Cloud tepercaya.
Di Konsol RAM, ubah kebijakan kepercayaan peran RAM. Gunakan konten berikut untuk kebijakan kepercayaan:
Akun yang sama
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "odps.aliyuncs.com" ] } } ], "Version": "1" }Lintas akun
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<ID-akun-pemilik-proyek-MaxCompute>@odps.aliyuncs.com" ] } } ], "Version": "1" }Di Konsol RAM, buat kebijakan akses kustom untuk peran RAM yang baru dibuat. Untuk informasi lebih lanjut, lihat Buat kebijakan akses kustom. Gunakan konten berikut untuk kebijakan akses kustom:
{ "Version": "1", "Statement": [ { "Action": [ "oss:ListBuckets", "oss:GetObject", "oss:ListObjects", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "dlf:CreateFunction", "dlf:BatchGetPartitions", "dlf:ListDatabases", "dlf:CreateLock", "dlf:UpdateFunction", "dlf:BatchUpdateTables", "dlf:DeleteTableVersion", "dlf:UpdatePartitionColumnStatistics", "dlf:ListPartitions", "dlf:DeletePartitionColumnStatistics", "dlf:BatchUpdatePartitions", "dlf:GetPartition", "dlf:BatchDeleteTableVersions", "dlf:ListFunctions", "dlf:DeleteTable", "dlf:GetTableVersion", "dlf:AbortLock", "dlf:GetTable", "dlf:BatchDeleteTables", "dlf:RenameTable", "dlf:RefreshLock", "dlf:DeletePartition", "dlf:UnLock", "dlf:GetLock", "dlf:GetDatabase", "dlf:GetFunction", "dlf:BatchCreatePartitions", "dlf:ListPartitionNames", "dlf:RenamePartition", "dlf:CreateTable", "dlf:BatchCreateTables", "dlf:UpdateTableColumnStatistics", "dlf:ListTableNames", "dlf:UpdateDatabase", "dlf:GetTableColumnStatistics", "dlf:ListFunctionNames", "dlf:ListPartitionsByFilter", "dlf:GetPartitionColumnStatistics", "dlf:CreatePartition", "dlf:CreateDatabase", "dlf:DeleteTableColumnStatistics", "dlf:ListTableVersions", "dlf:BatchDeletePartitions", "dlf:ListCatalogs", "dlf:UpdateTable", "dlf:ListTables", "dlf:DeleteDatabase", "dlf:BatchGetTables", "dlf:DeleteFunction" ], "Resource": "*", "Effect": "Allow" } ] }Sambungkan kebijakan akses kustom ke peran RAM yang telah Anda buat. Untuk informasi lebih lanjut, lihat Kelola izin peran RAM.
Otorisasi peran terkait layanan untuk Hologres (identity passthrough)
Saat MaxCompute mengakses data di Hologres melalui sumber data eksternal dan proyek eksternal, Anda harus menggunakan peran terkait layanan untuk memberikan izin akses data yang diperlukan kepada Hologres. Setelah peran dibuat, mode ini menggunakan identity passthrough untuk otorisasi, dengan mengotentikasi pengguna melalui penerusan identitas mereka ke Hologres guna mencegah akses tidak sah. Untuk menggunakan fitur ini, pengguna harus menjadi anggota proyek eksternal MaxCompute dan memiliki izin pada sumber data Hologres yang dipetakan ke proyek eksternal tersebut.
Login ke Konsol RAM.
Di bilah navigasi kiri, pilih .
Di halaman Roles, klik Create Role.
Di pojok kanan atas halaman Create Role, klik Create Service Linked Role.
Di halaman Create Service Linked Role, pilih Select Service:
aliyunserviceroleformaxcomputeidentitymgmt, lalu klik Create Service Linked Role.Jika muncul pesan bahwa peran tersebut sudah ada, artinya peran tersebut telah diotorisasi. Anda dapat mengabaikan pesan tersebut.
Otorisasi peran terkait layanan untuk Paimon_DLF (identity passthrough)
Saat MaxCompute mengakses data di DLF melalui sumber data eksternal dan proyek eksternal, Anda harus menggunakan peran terkait layanan untuk memberikan izin akses data yang diperlukan kepada DLF. Setelah peran dibuat, mode ini menggunakan identity passthrough untuk otorisasi. Identitas pengguna diteruskan ke DLF untuk otentikasi guna mencegah akses tidak sah. Untuk menggunakan fitur ini, pengguna harus ditambahkan ke proyek eksternal MaxCompute dan memiliki izin pada sumber data DLF yang dipetakan ke proyek eksternal tersebut.
Login ke Konsol RAM.
Di bilah navigasi kiri, pilih .
Di halaman Roles, klik Create Role.
Di pojok kanan atas halaman Create Role, klik Create Service Linked Role.
Di halaman Create Service Linked Role, untuk Select Service, pilih
AliyunServiceRoleForMaxComputeLakehouse, lalu klik Create Service Linked Role.Jika muncul pesan bahwa peran tersebut sudah ada, artinya peran tersebut telah diotorisasi. Anda dapat mengabaikan pesan tersebut.