Jika ingin menggunakan RAM user untuk mengakses sumber daya cloud lainnya, Anda dapat merujuk ke dokumen ini guna memberikan izin yang sesuai berdasarkan skenario Anda—otorisasi akun yang sama atau otorisasi lintas akun. Topik ini menjelaskan langkah-langkah detail untuk kedua jenis otorisasi tersebut.
Prasyarat
Kluster harus merupakan Edisi Perusahaan, Edisi Dasar, atau Edisi Lakehouse.
Izin Pekerjaan Spark
Untuk mengirimkan pekerjaan Spark, Anda harus memiliki tiga jenis izin berikut:
Izin | Deskripsi |
Salah satu dari izin berikut:
|
tindakan spesifik lihat Berikan izin kepada RAM user. |
Izin baca dan tulis pada database dan tabel AnalyticDB for MySQL | AnalyticDB for MySQL secara default menggunakan akun database untuk mengelola izin database dan tabel. Saat Anda mengirimkan pekerjaan Spark sebagai RAM user, jika pekerjaan Spark tersebut perlu membaca atau menulis data, Anda harus bind akun database standar ke RAM user tersebut. tindakan spesifik lihat Bind atau unbind RAM user dan akun database. |
| Digunakan untuk mengotorisasi AnalyticDB for MySQL Spark agar dapat mengakses sumber daya cloud lainnya, seperti direktori OSS dan data OTS. tindakan spesifik lihat Otorisasi Akun yang Sama. |
Otorisasi Akun yang Sama
Prasyarat
Prosedur
Otorisasi melalui Konsol RAM (Direkomendasikan)
Langkah 1: Buat peran RAM dan berikan izin
Buat peran RAM.
CatatanJika Anda telah membuat peran RAM dengan Trusted Entity Type untuk Alibaba Cloud Service dan Trusted Entity untuk AnalyticDB for MySQL, Anda dapat melewati langkah ini dan melanjutkan ke langkah berikutnya.
Login ke Konsol RAM sebagai administrator RAM.
Di panel navigasi kiri, pilih .
Pada halaman Roles, klik Create Role.
Pada halaman Create Role, atur Trusted Entity Type menjadi Alibaba Cloud Service, lalu pilih Trusted Entity sebagai AnalyticDB for MySQL, kemudian klik OK.
Pada kotak dialog Create Role, masukkan Role Name, lalu klik OK.
Berikan izin kepada peran RAM.
Klik Grant Permission by Policy.
Pada panel Grant Permission by Policy, atur tipe kebijakan menjadi System Policy atau Custom Policy, lalu masukkan nama kebijakan.
Jika hanya ingin mengakses sumber daya cloud tertentu, Anda harus membuat kebijakan kustom. Untuk informasi selengkapnya, lihat Buat kebijakan kustom.
Klik OK.
Langkah 2: Kirim pekerjaan Spark
Setelah membuat peran RAM dan memberikan izin melalui Konsol RAM, saat mengirimkan pekerjaan Spark, Anda harus mengonfigurasi parameter spark.adb.roleArn dalam konfigurasi pekerjaan Spark agar pekerjaan tersebut dapat berjalan dengan baik. Contoh:
{
"comments": [
"-- Berikut ini hanya contoh penggunaan LakeCache. Modifikasi konten dan jalankan program spark Anda."
],
"args": ["oss://testBucketName/data/readme.txt"],
"name": "spark-oss-test",
"file": "oss://testBucketName/data/example.py",
"conf": {
"spark.adb.lakecache.enabled": "true";
"spark.adb.roleArn": "acs:ram::testAccountID:role/adbtest";
}
}Otorisasi Cepat
Setelah otorisasi akun yang sama, peran AliyunADBSparkProcessingDataRole secara default diberikan kebijakan AliyunADBSparkProcessingDataRolePolicy. Kebijakan ini mencakup izin akses ke sumber daya cloud seperti OSS, Table Store, dan DMS, yang dapat menyebabkan over-authorization. Kami merekomendasikan agar setelah otorisasi, Anda menghapus kebijakan AliyunADBSparkProcessingDataRolePolicy dan peran AliyunADBSparkProcessingDataRole, serta memberikan hanya izin yang dibutuhkan oleh bisnis Anda.
Klik tautan otorisasi cepat.
CatatanHanya pengguna yang memiliki izin manajemen RAM user (minimal izin untuk membuat peran RAM, membuat kebijakan RAM, mengkueri peran RAM, dan mengkueri kebijakan RAM) yang dapat melakukan otorisasi cepat.
Klik Confirm Authorization di pojok kiri bawah.
Setelah otorisasi, peran layanan AliyunADBSparkProcessingDataRole akan dibuat secara otomatis untuk digunakan oleh AnalyticDB for MySQL. AnalyticDB for MySQL menggunakan peran ini untuk mengakses sumber daya cloud lainnya.
Otorisasi Lintas Akun
AnalyticDB for MySQL Spark mendukung akses ke semua sumber daya cloud milik akun Alibaba Cloud lainnya. Topik ini menggunakan Akun Alibaba Cloud A (akun utama dengan ID testAccountIDA) untuk mengakses data Akun Alibaba Cloud B (akun utama dengan ID testAccountIDB) sebagai contoh untuk menjelaskan prosedur otorisasi lintas akun.
Langkah 1: Buat peran RAM untuk Akun B dan berikan izin
Buat peran RAM dan izinkan Akun A untuk assume peran RAM ini.
CatatanJika Anda telah membuat peran RAM dan mengizinkan Akun A untuk assume peran RAM ini, Anda dapat melewati langkah ini dan melanjutkan ke langkah berikutnya.
Gunakan Akun Alibaba Cloud B (akun utama) atau administrator RAM untuk login ke Konsol RAM.
Di panel navigasi kiri, pilih .
Pada halaman Roles, klik Create Role.
Pada halaman Create Role, pilih Trusted Entity Type menjadi Alibaba Cloud Account, tentukan akun Alibaba Cloud, lalu klik OK.
Konfigurasi informasi peran.
Masukkan Role Name. Pada contoh ini, atur nama peran menjadi
admin-oss.Opsional: Masukkan Description.
Atur Trusted Alibaba Cloud Account menjadi Other Alibaba Cloud Account, lalu masukkan UID Akun A (
testAccountIDA).
Klik Complete.
untuk memberikan izin ke peran RAM berdasarkan kebijakan.
Klik Grant Permission by Policy.
Pada panel Grant Permission by Policy, atur tipe kebijakan menjadi System Policy atau Custom Policy, lalu masukkan nama kebijakan.
Akses OSS
AliyunOSSReadOnlyAccess: Izin untuk membaca sumber daya OSS.
AliyunOSSFullAccess: Izin untuk mengelola OSS. Jika Anda perlu melakukan operasi pembaruan data seperti INSERT pada tabel eksternal OSS, Anda harus memberikan izin ini kepada peran RAM.
Akses sumber daya di VPC tertentu
Jika ingin mengakses sumber daya di VPC tertentu, Anda harus membuat kebijakan kustom dan menentukan security group serta vSwitch dalam parameter Resource. Untuk informasi selengkapnya, lihat Buat kebijakan kustom.
Pada contoh ini, hanya akses ke instans ApsaraDB RDS for MySQL di VPC tertentu yang diotorisasi. Nama kebijakan kustom adalah
eni_policy, dan isi kebijakan adalah sebagai berikut:CatatanAnda harus menambahkan security group pada instans RDS MySQL dan mengizinkan akses inbound dan outbound dalam aturan grup keamanan untuk permintaan akses port RDS MySQL.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "acs:ecs:*:*:securitygroup/<Security group ID of the ApsaraDB RDS instance>" }, { "Effect": "Allow", "Action": "vpc:*", "Resource": "acs:vpc:*:*:vswitch/<vSwitch ID of the ApsaraDB RDS instance>" } ] }Klik OK.
Klik Close.
Ubah kebijakan kepercayaan untuk mengizinkan semua RAM user di bawah Akun A mengasumsikan peran RAM ini.
Di panel navigasi kiri, pilih .
Pada halaman Roles, klik nama peran RAM target.
Pada tab Trust Policy, klik Edit Trust Policy.
Di editor, ubah isi kebijakan kepercayaan, lalu klik OK.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::testAccountIDA:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "testAccountIDA@ads.aliyuncs.com" ] } } ], "Version": "1" }
Langkah 2: Untuk Akun A, buat RAM user dan berikan izin assume peran RAM
Buat RAM user.
Gunakan Akun Alibaba Cloud A (akun utama) atau administrator RAM untuk login ke Konsol RAM.
Di panel navigasi kiri, pilih .
Pada halaman Users, klik Create User.
Pada halaman Create User, konfigurasikan informasi dasar pengguna di bagian User Account Information.
Logon Name (Wajib): dapat berisi huruf, angka, titik (.), tanda hubung (-), dan garis bawah (_). Panjang maksimum: 64 karakter.
Display Name (Opsional): panjang maksimum: 128 karakter.
Tag (Opsional): Klik
, lalu masukkan kunci tag dan nilai tag untuk manajemen pengguna berbasis tag.
CatatanKlik Add User untuk membuat beberapa RAM user sekaligus.
Di bagian Access Method, pilih Console Access, lalu konfigurasikan password login konsol, kebijakan reset password, dan kebijakan MFA sesuai kebutuhan. Untuk informasi selengkapnya, lihat Console Access.
Klik OK.
Buat kebijakan untuk mengizinkan RAM user mengasumsikan peran apa pun.
Di panel navigasi kiri, pilih .
Pada halaman Policies, klik CreatePolicies.
Pada halaman CreatePolicies, klik tab Script Editor.
Masukkan isi kebijakan, lalu klik OK.
{ "Version": "1", "Statement": [ { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow" } ] }Pada kotak dialog CreatePolicies, masukkan Policy Name dan Description, lalu klik OK.
Berikan izin kepada RAM user.
Di panel navigasi kiri, pilih .
Pada halaman Users, klik Actions pada RAM user target, lalu pilih Add Permissions.
Pada panel Add Permissions, tambahkan kebijakan yang dibuat pada Langkah 2 ke RAM user tersebut.
Klik Confirm.
Klik Close.