Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Katalog Federasi ke Gunung Snowflake Es
AWS Glue Data Catalog federasi untuk Snowflake menggunakan OAuth2 kredensi dari kepala layanan. Snowflake Anda dapat menggunakan federasi ini untuk terhubung ke Snowflake Horizon dan Snowflake Polaris katalog. Mekanisme otentikasi ini memungkinkan Katalog Data untuk mengakses metadata berbagai objek (seperti katalog, database, dan tabel) dalam katalog Anda, berdasarkan hak istimewa yang terkait dengan prinsipal layanan. Untuk memastikan akses ke objek yang tepat, penting untuk memberikan prinsip layanan Snowflake dengan izin yang diperlukan untuk membaca metadata objek ini.
Prasyarat
Sebelum Anda membuat katalog federasi di Katalog Data yang diatur oleh Lake Formation, pastikan Anda memiliki izin berikut:
Prinsipal IAM Anda (pengguna atau peran) harus memiliki izin berikut:
-
Izin Lake Formation —
lakeformation:RegisterResource,lakeformation:DescribeResource -
AWS Glue izin —
glue:CreateConnection,,glue:CreateCatalog,glue:GetConnectionglue:PassConnection -
Izin Secrets Manager —
secretsmanager:CreateSecret,secretsmanager:GetSecretValue -
Izin IAM —
iam:CreateRole,,iam:AttachRolePolicyiam:PassRole
Anda harus menjadi administrator danau data Lake Formation atau memiliki CREATE_CATALOG izin pada Katalog Data
Buat Katalog Federasi
Masuk ke konsol dan buka konsol Lake Formation di https://console.aws.amazon.com/lakeformation/
. Pilih AWS wilayah yang disukai di bagian halaman kanan atas.
Di panel navigasi kiri, pilih Katalog.
Pilih Create Catalog untuk membuka Create Catalog Workflow.
Di Pilih langkah sumber data, pilih Snowflake dari opsi yang tersedia.
Pada langkah Atur detail katalog, Anda memberikan tiga informasi - detail katalog, detail koneksi, dan detail pendaftaran.
Dalam wadah detail katalog, berikan nama unik ke katalog AWS Glue federasi Anda dan masukkan nama Snowflake katalog yang ada.
Dalam kontainer detail koneksi, Anda dapat memilih dari koneksi yang ada yang dapat Anda akses atau menyediakan konfigurasi untuk membuat konektor baru.
Konfigurasi koneksi baru meliputi:
Nama Koneksi — Nama unik dari objek AWS Glue koneksi.
URL Instance — URL endpoint dari Snowflake akun Anda yang ada.
Otentikasi — Tentukan konfigurasi otentikasi yang AWS Glue digunakan untuk terhubung ke server katalog jarak jauh. AWS Glue mendukung keduanya OAuth2 dan otentikasi Kustom.
URL Token — Tentukan URL penyedia identitas katalog jarak jauh.
OAuth2 ID Klien - Tentukan ID Klien dari OAuth2 kredensi yang terkait dengan katalog jarak jauh Anda.
Rahasia — Simpan dan gunakan rahasia OAuth2 klien menggunakan AWS Secrets Manager atau masukkan nilai rahasia di kotak teks. Saat Anda memasukkan rahasia secara manual di konsol, AWS Glue buat rahasia atas nama Anda.
Cakupan URL Token — Tentukan OAuth ruang lingkup untuk otentikasi.
Filter Casing Katalog - Pilih apakah akan membawa objek huruf kecil atau huruf besar dari katalog jarak jauh Anda ke Katalog Data.
Buat peran IAM yang dapat digunakan oleh kepala layanan Lake Formation untuk mengakses rahasia di AWS Glue dan lokasi Amazon AWS Secrets Manager S3 dari tabel Iceberg jarak jauh. Pilih peran IAM di dropdown pendaftaran. Lihat langkah 2 dan 3 di bagian CLI berikut untuk detail kebijakan IAM.
Pilih Uji Koneksi untuk menguji apakah properti koneksi dan akses peran IAM dikonfigurasi dengan benar.
Pilih Berikutnya untuk meninjau pengaturan Anda.
Pilih Buat Katalog di halaman ulasan.
-
Buat AWS Secrets Manager rahasia
AWS Glue Konektor mendukung dua jenis otentikasi - OAuth2dan Custom. Saat menggunakan OAuth2 opsi, gunakan AWS Secrets Manager untuk menyimpan rahasia klien dari kepala Snowflake layanan. Anda nantinya akan menggunakan rahasia ini saat membuat AWS Glue Koneksi. Untuk otentikasi kustom, gunakan AWS Secrets Manager untuk menyimpan dan mengambil token akses.
Dalam contoh berikut, ganti
,your-snowflake-secret,client_secretdengan informasi Anda sendiri.regionaws secretsmanager create-secret \ --nameyour-snowflake-secret\ --description "Snowflake secret" \ --secret-string '{ "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "client_secret" }' \ --regionregioncatatan
USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRETadalah kata kunci yang dicadangkan yang AWS Glue digunakan untuk merujuk ke nilai rahasia klien dalam rahasia. Gunakan kata kunci yang sama saat Anda membuat rahasia di konsol Lake Formation juga. -
Buat peran IAM yang memberikan akses objek AWS Glue koneksi ke rahasia yang dibuat pada langkah sebelumnya
Objek AWS Glue koneksi memerlukan akses ke AWS Secrets Manager rahasia saat Anda gunakan AWS Secrets Manager untuk menyimpan, mengambil, dan menyegarkan token OAuth rahasia Anda. Objek AWS Glue koneksi juga memerlukan akses untuk membuat, mendeskripsikan, dan menggunakan antarmuka jaringan Amazon VPC saat Anda menggunakan titik akhir VPC Amazon untuk membatasi konektivitas ke akun Anda. Snowflake
Buat kebijakan IAM dan lampirkan ke peran IAM. Tambahkan prinsip AWS Glue layanan ke kebijakan kepercayaan.
Dalam contoh berikut, ganti
,your-secrets-manager-ARN, danyour-vpc-iddengan informasi Anda sendiri.your-subnet-id1contoh Kebijakan IAM
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue" ], "Resource": [ "your-secrets-manager-ARN" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": "*", "Condition": { "ArnEquals": { "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/your-vpc-id", "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/your-subnet-id1"] } } } ] }contoh Kebijakan Kepercayaan
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" }] } -
Buat kebijakan IAM yang memberikan akses baca Lake Formation ke lokasi Amazon S3 katalog
Sebagai pemilik katalog katalog federasi di Katalog Data, Anda menggunakan Lake Formation untuk memberikan akses tabel berbutir kasar, akses berbutir halus - tingkat kolom, tingkat baris, dan tingkat sel - akses, dan akses berbasis tag ke tim data Anda. Lake Formation menggunakan peran IAM yang memberikan akses ke lokasi Amazon S3 yang mendasari tabel Iceberg jarak jauh Anda. Akses ini memungkinkan Lake Formation untuk menjual kredenal akses cakupan ke mesin analitik yang menanyakan tabel jarak jauh.
Buat kebijakan IAM dan lampirkan ke peran IAM. Tambahkan kepala layanan Lake Formation ke kebijakan kepercayaan peran.
Dalam contoh berikut, ganti
danamzn-s3-demo-bucketNdengan informasi Anda sendiri.your-kms-keycontoh Kebijakan IAM
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket2" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": [ "your-kms-key" ] } ] }contoh Kebijakan Kepercayaan
{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": "sts:AssumeRole" }] }catatan
Saat Anda menggunakan konsol Lake Formation untuk membuat katalog federasi, konsol menggunakan peran IAM tunggal dengan kedua kebijakan yang dilampirkan untuk menyelesaikan penyiapan.
-
Buat objek AWS Glue koneksi
AWS Glue konektor mendukung OAuth2 dan metode otentikasi kustom. Objek koneksi Katalog Data mendukung
CATALOG_CASING_FILTERkonfigurasi yang memungkinkan Anda membawa objek huruf kecil atau huruf besar dalam katalog jarak jauh Anda ke Katalog Data.Contoh berikut menggunakan konfigurasi OAuth2 otentikasi untuk membuat AWS Glue koneksi. Ganti
dengan informasi Anda.highlighted sectionsaws glue create-connection \ --connection-input '{ "Name": "your-glue-connection-to-snowflake-account", "ConnectionType": "SNOWFLAKEICEBERGRESTCATALOG", "ConnectionProperties": { "INSTANCE_URL": "your-snowflake-account-URL", "ROLE_ARN": "your-IAM-role-for-secrets-and-VPC-access", "CATALOG_CASING_FILTER": "LOWERCASE_ONLY" }, "AuthenticationConfiguration": { "AuthenticationType": "OAUTH2", "OAuth2Properties": { "OAuth2GrantType": "CLIENT_CREDENTIALS", "TokenUrl": "your-internal-or-external-token-server-url", "OAuth2ClientApplication": { "UserManagedClientApplicationClientId": "our-client-id" }, "TokenUrlParametersMap": { "scope": "all-apis" } }, "SecretArn": "arn:aws:secretsmanager:your-aws-region:your-aws-account-id:secret:snowflake-secret" } }' -
Daftarkan AWS Glue koneksi sebagai sumber daya Lake Formation
Menggunakan objek AWS Glue koneksi (dibuat di Langkah 4) dan peran IAM (dibuat pada Langkah 3), Anda sekarang dapat mendaftarkan objek AWS Glue koneksi sebagai sumber daya yang dikelola Lake Formation.
Ganti
danyour-glue-connector-arndengan informasi Anda.your-IAM-role-ARN-having-LF-accessaws lakeformation register-resource \ --resource-arnyour-glue-connector-arn\ --role-arnyour-IAM-role-ARN-having-LF-access\ --with-federation \ --with-privileged-access -
Buat katalog federasi di Katalog Data
Setelah membuat objek AWS Glue koneksi dan mendaftarkannya dengan Lake Formation, Anda dapat membuat katalog federasi di Katalog Data:
Berikan katalog federasi nama unik di
, referensi katalog Snowflake di atyour-federated-catalog-name, dan masukkan nama koneksi yang dibuat sebelumnya dicatalog-name-in-Snowflake.your-glue-connection-nameaws glue create-catalog \ --nameyour-federated-catalog-name\ --catalog-input '{ "FederatedCatalog": { "Identifier":catalog-name-in-Snowflake", "ConnectionName":your-glue-connection-name" }, "CreateTableDefaultPermissions": [], "CreateDatabaseDefaultPermissions": [] }'
Pertimbangan saat berintegrasi dengan Snowflake
-
Saat Anda menghapus sumber daya (seperti database dan tabel)Snowflake, Lake Formation tidak secara otomatis mencabut izin yang diberikan pada sumber daya federasi tersebut. Untuk menghapus izin akses, Anda harus secara eksplisit mencabut izin yang sebelumnya diberikan pada sumber daya federasi menggunakan Lake Formation.
-
Saat Anda memasang katalog jarak jauh dengan
CATALOG_CASING_FILTER='UPPERCASE_ONLY'konfigurasi, database dan tabel dengan pengidentifikasi huruf besar digabungkan tetapi objek dengan pengidentifikasi huruf kecil tidak. -
Anda dapat menggunakan kembali AWS Glue koneksi yang sama untuk membuat beberapa katalog federasi. Menghapus katalog tidak akan menghapus koneksi terkait. Untuk menghapus koneksi, gunakan
aws glue delete-connectionperintah AWS CLI dan pastikan semua katalog terkait dihapus terlebih dahulu. -
Ruang nama bersarang dalam Polaris katalog tidak didukung. Artinya, federasi katalog dapat mengakses Iceberg tabel jarak jauh yang mengikuti
catalog.database.tablenotasi 3 bagian.