Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób tworzenia uwierzytelnienia magazynu w Unity Catalog w celu połączenia z AWS S3. Obsługa usługi S3 w usłudze Azure Databricks jest tylko do odczytu.
Poświadczenie magazynu zawiera długoterminowe poświadczenie chmury z dostępem do magazynu w chmurze. Podczas tworzenia lokalizacji zewnętrznych w Katalogu Unity odwołujesz się do poświadczeń magazynu i ścieżki magazynu w chmurze w celu zarządzania dostępem do magazynu zewnętrznego.
Aby uzyskać więcej informacji na temat poświadczeń magazynu i lokalizacji zewnętrznych, zobacz Connect to cloud object storage using Unity Catalog.
Aby uzyskać więcej informacji o innych opcjach magazynu w chmurze obsługiwanych przez Katalog Unity, zobacz Opcje magazynu w chmurze obsługiwane przez Katalog Unity.
Uwaga / Notatka
Mogą obowiązywać opłaty za transfer danych między chmurami. W przypadku korzystania z bezserwerowych obliczeń opłaty są naliczane zgodnie z zasadami transferu danych i łączności usługi Databricks.
Utwórz poświadczenie magazynu
Aby utworzyć poświadczenia magazynu na potrzeby dostępu do zasobnika S3, należy utworzyć rolę IAM platformy AWS, która autoryzuje dostęp do ścieżki zasobnika S3 i odwołuje się do tej roli IAM w definicji poświadczeń magazynu.
Wymagania
W usłudze Azure Databricks:
- Obszar roboczy usługi Azure Databricks z obsługą Unity Catalog.
-
CREATE STORAGE CREDENTIALuprawnienie do repozytorium metadanych Unity Catalog przypisanego do obszaru roboczego. Administratorzy kont i administratorzy magazynu metadanych mają domyślnie te uprawnienia.
Na koncie platformy AWS:
Zasobnik S3 spełniający następujące wymagania:
- Nie używaj notacji kropkowej (na przykład
incorrect.bucket.name.notation) w nazwach zasobnika S3. Mimo że platforma AWS zezwala na kropki w nazwach zasobników, usługa Azure Databricks nie obsługuje zasobników S3 z notacją kropką. Wiadra zawierające kropki mogą powodować problemy ze zgodnością z funkcjami, takimi jak Delta Sharing, z powodu niepowodzeń weryfikacji certyfikatu SSL. Aby uzyskać więcej informacji, zobacz najlepsze rozwiązania dotyczące nazewnictwa zasobników platformy AWS. - Zasobnik nie może mieć dołączonej listy kontroli dostępu S3.
- Nie używaj notacji kropkowej (na przykład
Możliwość tworzenia ról IAM.
Krok 1. Tworzenie roli IAM
W AWS utwórz rolę IAM, która zapewnia dostęp do zasobnika S3, do którego mają uzyskiwać dostęp użytkownicy. Ta rola IAM musi być zdefiniowana na tym samym koncie co bucket S3.
Wskazówka
Jeśli masz już utworzoną rolę IAM zapewniającą ten dostęp, możesz pominąć ten krok i przejść bezpośrednio do kroku 2: Podaj usłudze Azure Databricks szczegóły roli IAM.
Utwórz rolę IAM, która umożliwia dostęp do bucketu S3.
Tworzenie roli to proces dwuetapowy. W tym kroku utworzysz rolę, dodając tymczasową politykę relacji zaufania i zastępczy identyfikator zewnętrzny, który następnie modyfikujesz po utworzeniu poświadczeń magazynowych w usłudze Azure Databricks.
Należy zmodyfikować zasady zaufania po utworzeniu roli, ponieważ Twoja rola musi być samoprzydzielająca się (to znaczy, że musi być skonfigurowana, aby sobie ufać). Rola musi zatem istnieć przed dodaniem deklaracji samozałożeń. Aby uzyskać informacje o samozwańczych rolach, zobacz ten artykuł na blogu Amazon.
Ważne
Usługa Databricks blokuje nowe i istniejące poświadczenia magazynu, opierając się na rolach IAM, które nie są samodzielnie przypisywane. Aby uzyskać szczegółowe informacje, zobacz Zasady samodzielnego przypisania ról.
Aby utworzyć politykę, należy użyć symbolu zastępczego dla identyfikatora zewnętrznego.
Utwórz rolę IAM przy użyciu niestandardowych zasad zaufania.
W polu Zasady zaufania niestandardowego wklej następujący kod JSON zasad.
Ta polityka ustanawia relację zaufania między kontami, aby Unity Catalog mógł przyjąć rolę dostępu do danych w bucket na rzecz użytkowników Databricks. Jest to określone przez ARN w
Principalsekcji. Jest to wartość statyczna, która odwołuje się do roli utworzonej przez usługę Databricks.Polityka ustawia identyfikator zewnętrzny na
0000jako symbol zastępczy. Zaktualizujesz to do zewnętrznego identyfikatora dla poświadczeń dostępu do magazynu w późniejszym kroku.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::414351767826:role/unity-catalog-prod-UCAzureMainRole-1AJ6UQSSB8F0Q"] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "0000" } } } ] }Pomiń konfigurację zasad uprawnień. Wrócisz, żeby to dodać w późniejszym kroku.
Zapisz rolę IAM.
Utwórz następującą politykę IAM na tym samym koncie co bucket S3, zastępując podane wartości:
-
<BUCKET>: nazwa zasobnika S3. -
<KMS-KEY>: opcjonalne. Jeśli szyfrowanie jest włączone, podaj nazwę klucza usługi KMS, który szyfruje zawartość zasobnika S3. Jeśli szyfrowanie jest wyłączone, usuń całą sekcję KMS w polityce IAM. -
<AWS-ACCOUNT-ID>: Identyfikator konta AWS (a nie konta usługi Databricks). -
<AWS-IAM-ROLE-NAME>: nazwa roli IAM platformy AWS utworzonej w poprzednim kroku.
Ta polityka IAM przyznaje dostęp do odczytu i zapisu. Można również utworzyć politykę, która udziela dostępu tylko do odczytu. Może to być jednak niepotrzebne, ponieważ można oznaczyć poświadczenie dostępu do magazynu w trybie tylko do odczytu, a zostanie zignorowany wszelki dostęp do zapisu przyznany przez tę rolę IAM.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": ["arn:aws:s3:::<BUCKET>/*", "arn:aws:s3:::<BUCKET>"], "Effect": "Allow" }, { "Action": ["kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*"], "Resource": ["arn:aws:kms:<KMS-KEY>"], "Effect": "Allow" }, { "Action": ["sts:AssumeRole"], "Resource": ["arn:aws:iam::<AWS-ACCOUNT-ID>:role/<AWS-IAM-ROLE-NAME>"], "Effect": "Allow" } ] }Uwaga / Notatka
Jeśli potrzebujesz bardziej restrykcyjnej polityki IAM dla Unity Catalog, skontaktuj się z zespołem ds. kont Azure Databricks w celu uzyskania pomocy.
-
Utwórz politykę IAM dla zdarzeń dotyczących plików na tym samym koncie co bucket S3.
Uwaga / Notatka
Ten krok jest opcjonalny, ale zdecydowanie zalecany. Jeśli nie przyznasz usłudze Azure Databricks dostępu do konfigurowania zdarzeń plików w Twoim imieniu, musisz ręcznie skonfigurować zdarzenia plików dla każdej lokalizacji. Jeśli tego nie zrobisz, będziesz mieć ograniczony dostęp do kluczowych funkcji, które Databricks może udostępnić w przyszłości. Aby uzyskać więcej informacji na temat zdarzeń plików, zobacz (Zalecane) Włączanie zdarzeń plików dla lokalizacji zewnętrznej.
Zasady zarządzania dostępem i tożsamościami udzielają uprawnień usługi Azure Databricks do aktualizowania konfiguracji powiadomień o zdarzeniach zasobnika, tworzenia tematu SNS, tworzenia kolejki SQS i subskrybowania kolejki SQS do tematu SNS. Są to wymagane zasoby dla funkcji korzystających ze zdarzeń plików. Zastąp
<BUCKET>nazwą wiadra S3.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManagedFileEventsSetupStatement", "Effect": "Allow", "Action": [ "s3:GetBucketNotification", "s3:PutBucketNotification", "sns:ListSubscriptionsByTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:CreateTopic", "sns:TagResource", "sns:Publish", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:GetQueueUrl", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sqs:TagQueue", "sqs:ChangeMessageVisibility", "sqs:PurgeQueue" ], "Resource": ["arn:aws:s3:::<BUCKET>", "arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"] }, { "Sid": "ManagedFileEventsListStatement", "Effect": "Allow", "Action": ["sqs:ListQueues", "sqs:ListQueueTags", "sns:ListTopics"], "Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"] }, { "Sid": "ManagedFileEventsTeardownStatement", "Effect": "Allow", "Action": ["sns:Unsubscribe", "sns:DeleteTopic", "sqs:DeleteQueue"], "Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"] } ] }Dołącz zasady IAM do roli IAM.
Na karcie Uprawnienia roli dołącz utworzone przed chwilą zasady IAM.
Krok 2: Nadaj Azure Databricks szczegóły roli IAM
W usłudze Azure Databricks zaloguj się do obszaru roboczego połączonego z magazynem metadanych Unity Catalog.
Musisz mieć
CREATE STORAGE CREDENTIALuprawnienia. Zarówno role administratora magazynu metadanych, jak i administratora konta obejmują te uprawnienia.Kliknij
Wykaz.
Kliknij przycisk Dane >zewnętrzne, przejdź do karty Poświadczenia i wybierz pozycję Utwórz poświadczenia.
Wybierz typ poświadczeńroli IAM platformy AWS.
Wprowadź nazwę poświadczenia, ARN roli IAM, która autoryzuje Unity Catalog do uzyskiwania dostępu do lokalizacji magazynowej w chmurze, oraz opcjonalny komentarz.
(Opcjonalnie) Jeśli chcesz, aby użytkownicy mieli dostęp tylko do odczytu do lokalizacji zewnętrznych korzystających z tego poświadczenia magazynu, w obszarze Opcje zaawansowane wybierz pozycję Tylko do odczytu. Aby uzyskać więcej informacji, zobacz Oznaczanie poświadczeń magazynu jako tylko do odczytu.
Uwaga / Notatka
Ponieważ usługa Azure Databricks zapewnia jedynie dostęp do odczytu do zasobników S3 przy użyciu danych uwierzytelniających magazynu, nie ma potrzeby ustawiania tej opcji.
Kliknij pozycję Utwórz.
W oknie dialogowym Utworzone poświadczenie magazynu skopiuj zewnętrzny identyfikator.
Kliknij Gotowe.
(Opcjonalnie) Powiąż poświadczenie dostępu do magazynu danych z określonymi obszarami roboczymi.
Domyślnie każdy uprzywilejowany użytkownik może używać poświadczeń magazynowania w dowolnym obszarze roboczym dołączonym do magazynu metadanych. Jeśli chcesz zezwolić na dostęp tylko z określonych obszarów roboczych, przejdź do karty Obszary robocze i przypisz obszary robocze. Zobacz (Opcjonalnie) Przypisywanie poświadczeń magazynu konkretnym obszarom roboczym.
Możesz również utworzyć poświadczenia magazynu przy użyciu dostawcy narzędzia Terraform usługi Databricks i databricks_storage_credential.
Krok 3. Aktualizacja zasad relacji zaufania roli IAM
W usłudze AWS zmodyfikuj politykę relacji zaufania, aby dodać zewnętrzny identyfikator poświadczenia magazynu oraz aby była samozałożeniowa.
Wróć do zapisanej roli IAM i przejdź do karty Relacje zaufania.
Edytuj zasady relacji zaufania w następujący sposób:
Dodaj następujący ARN do instrukcji „Allow”. Zastąp
<YOUR-AWS-ACCOUNT-ID>rzeczywistym identyfikatorem konta oraz<THIS-ROLE-NAME>rzeczywistymi wartościami ról IAM."arn:aws:iam::<YOUR-AWS-ACCOUNT-ID>:role/<THIS-ROLE-NAME>"W instrukcji
"sts:AssumeRole"zaktualizuj symbol zastępczy, zamieniając identyfikator zewnętrzny na identyfikator zewnętrzny poświadczeń magazynowych, który skopiowałeś w poprzednim kroku."sts:ExternalId": "<STORAGE-CREDENTIAL-EXTERNAL-ID>"Polityka powinna teraz wyglądać podobnie do poniższej, a wartość zastępcza została zaktualizowana w celu użycia zewnętrznego identyfikatora, identyfikatora konta oraz wartości roli IAM dla poświadczeń magazynu.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::414351767826:role/unity-catalog-prod-UCAzureMainRole-1AJ6UQSSB8F0Q", "arn:aws:iam::<YOUR-AWS-ACCOUNT-ID>:role/<THIS-ROLE-NAME>" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<STORAGE-CREDENTIAL-EXTERNAL-ID>" } } } ] }
Krok 4. Weryfikowanie poświadczeń magazynu
Po wprowadzeniu zmian w zasadach zaufania roli IAM w kroku 3: Zaktualizuj zasady relacji zaufania roli IAM, sprawdź, czy rola IAM została prawidłowo skonfigurowana do użycia jako poświadczenie magazynu.
Uwaga / Notatka
Aby zweryfikować konfigurację, musisz być właścicielem poświadczeń magazynowych, administratorem metastore lub mieć CREATE EXTERNAL LOCATION uprawnienia do poświadczeń magazynowych.
W usłudze Azure Databricks zaloguj się do obszaru roboczego połączonego z magazynem metadanych.
Kliknij
Wykaz.
Kliknij przycisk Dane >zewnętrzne i przejdź do karty Poświadczenia.
Alternatywnie, możesz kliknąć
w górnej części okienka katalogu i wybrać pozycję Poświadczenia.
Wybierz poświadczenie magazynu, które chcesz zweryfikować.
Kliknij
.Jeśli którykolwiek z testów nie powiedzie się, wróć do kroku 3. Zaktualizuj zasady relacji zaufania roli IAM i przejrzyj zasady zaufania roli IAM, aby skonfigurować je poprawnie.
Po zweryfikowaniu poświadczeń magazynu można użyć go do utworzenia lokalizacji zewnętrznej.
Polityka samowyznaczania i egzekwowania ról
30 czerwca 2023 r. AWS zaktualizował zasady zaufania roli IAM, aby wymagać, aby role IAM wyraźnie ufały samym sobie podczas STS:AssumeRole wywołań. W związku z tym usługa Databricks wymaga, aby role IAM platformy AWS dla poświadczeń magazynu były zakładane samodzielnie. Aby uzyskać szczegółowe informacje, zobacz ten wpis w blogu społeczności.
20 stycznia 2025 r. usługa Databricks zaczęła blokować użycie istniejących poświadczeń magazynu przy założeniu, że role IAM nie są samodzielne. Ten zakaz może przerwać obciążenia i zadania, które są uruchamiane przy użyciu poświadczeń innych niż własne.
Aby sprawdzić, czy rola IAM platformy AWS dla poświadczeń magazynu samodzielnie się zakłada, postępuj zgodnie z instrukcjami w kroku 4: Weryfikowanie poświadczeń magazynu. Jeśli kontrola Samodzielne przyjęcie roli nie powiedzie się, wróć do Krok 3: Zaktualizuj zasady relacji zaufania roli IAM i skonfiguruj ponownie zasady zaufania roli IAM, aby ufały samej sobie.
Jeśli w metastore masz wiele poświadczeń magazynu, które chcesz sprawdzić, użyj następującego notesu, aby zweryfikować możliwości samodzielnego przypisania wszystkich poświadczeń magazynu.
Samowystarczalny notatnik do weryfikacji poświadczeń magazynowania
(Opcjonalnie) Przypisywanie poświadczeń magazynu do określonych obszarów roboczych
Domyślnie poświadczenie magazynu jest dostępne ze wszystkich obszarów roboczych w metastore. Oznacza to, że jeśli użytkownik otrzymał uprawnienie (na przykład CREATE EXTERNAL LOCATION) na danym poświadczeniu pamięci, może korzystać z tego uprawnienia z dowolnego obszaru roboczego dołączonego do magazynu metadanych. Jeśli używasz obszarów roboczych do izolowania dostępu do danych użytkownika, możesz umożliwić dostęp do poświadczeń magazynowych tylko z określonych obszarów roboczych. Ta funkcja jest znana jako powiązanie obszaru roboczego lub izolacja poświadczeń przechowywania. Aby uzyskać więcej informacji, zobacz (Opcjonalnie) Przypisywanie poświadczeń do określonych obszarów roboczych.
Ograniczenia
- W obszarach roboczych korzystających z kontroli ruchu wychodzącego bezserwerowego dostęp międzyplatformowy do zasobników usługi AWS S3 musi być skonfigurowany przy użyciu interfejsu API zasad sieciowych.
Dalsze kroki
Wyświetlanie, aktualizowanie, usuwanie, i przyznawanie innym użytkownikom uprawnień do używania poświadczenia dostępu do magazynu danych. Zobacz Zarządzanie poświadczeniami magazynowymi.
Zdefiniuj lokalizacje zewnętrzne przy użyciu poświadczenia dostępu do pamięci masowej. Zobacz Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks.