Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
I den här artikeln beskrivs hur du skapar autentiseringsuppgifter för lagring i Unity Catalog för att ansluta till AWS S3. Stöd för S3 i Azure Databricks är endast läsbart.
En lagringsautentiseringsuppgift innehåller en långsiktig molnautentiseringsuppgift med åtkomst till molnlagring. Du refererar till en lagringsautentiseringsuppgift och molnlagringssökvägen när du skapar externa platser i Unity Catalog för att styra åtkomsten till extern lagring.
Mer information om autentiseringsuppgifter för lagring och externa platser finns i Ansluta till molnobjektlagring med Unity Catalog.
Information om andra molnlagringsalternativ som stöds av Unity Catalog finns i Molnlagringsalternativ som stöds av Unity Catalog.
Anmärkning
Avgifter för dataöverföring mellan moln kan tillkomma. När du använder serverlös beräkning debiteras du i enlighet med dataöverförings- och anslutningsprincipen för Databricks.
Skapa lagringsautentiseringsuppgifterna
Om du vill skapa en lagringsautentiseringsuppgift för åtkomst till en S3-bucket skapar du en AWS IAM-roll som ger åtkomst till S3-bucketsökvägen och refererar till den IAM-rollen i definitionen för lagringsautentiseringsuppgifter.
Kravspecifikation
I Azure Databricks-miljön:
- Azure Databricks-arbetsytan aktiverad för Unity Catalog.
-
CREATE STORAGE CREDENTIAL-behörighet på Unity Catalog-metastore som är anslutet till arbetsytan. Kontoadministratörer och metaarkivadministratörer har den här behörigheten som standard.
I ditt AWS-konto:
En S3-bucket som uppfyller följande krav:
- Använd inte punkt notation (till exempel
incorrect.bucket.name.notation) i S3 bucketnamn. Även om AWS tillåter punkter i bucketnamn har Azure Databricks inte stöd för S3-bucketar med punkt notation. Bucketar som innehåller punkter kan orsaka kompatibilitetsproblem med funktioner som Deltadelning på grund av SSL-certifikatverifieringsfel. Mer information finns i metodtipsen för namngivning av AWS-bucketnamn. - Hinken kan inte ha en S3-åtkomstkontroll-lista kopplad till sig.
- Använd inte punkt notation (till exempel
Möjligheten att skapa IAM-roller.
Steg 1: Skapa en IAM-roll
I AWS skapar du en IAM-roll som ger åtkomst till S3-bucketen som du vill att användarna ska komma åt. Den här IAM-rollen måste definieras i samma konto som S3-hinken.
Tips/Råd
Om du redan har skapat en IAM-roll som ger den här åtkomsten kan du hoppa över det här steget och gå direkt till Steg 2: Ge Azure Databricks IAM-rollinformationen.
Skapa en IAM-roll som ger åtkomst till S3-behållaren.
Rollskapande är en process i två steg. I det här steget skapar du rollen genom att lägga till en tillfällig förtroenderelationspolicy och ett platshållar-externt ID som du sedan ändrar när du har skapat lagringsautentiseringsuppgift i Azure Databricks.
Du måste ändra förtroendeprincipen efter du har skapat rollen eftersom din roll måste vara självantagande (det vill säga, den måste vara konfigurerad för att lita på sig själv). Rollen måste därför finnas innan du lägger till självantagandeinstruktionen. Information om självantagande roller finns i den här Amazon-bloggartikeln.
Viktigt!
Databricks blockerar nya och befintliga lagringsautentiseringar baserat på IAM-roller som inte kan anta sig själva. Mer information finns i Självbetjäningsprincip för rolltillämpning.
För att skapa policyn måste du använda ett externt platshållar-ID.
Skapa IAM-rollen med en anpassad förtroendeprincip.
I fältet Anpassad förtroendeprincip klistrar du in följande princip-JSON.
Den här principen upprättar en förtroenderelation mellan konton så att Unity Catalog kan anta rollen för att komma åt data i bucketen för Databricks-användare. Detta anges av ARN i avsnittet
Principal. Det är ett statiskt värde som refererar till en roll som skapats av Databricks.Policyn anger det externa ID:t som
0000som en platshållare. Du uppdaterar detta till det externa ID:t för dina lagringsautentiseringsuppgifter i ett senare steg.{ "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" } } } ] }Hoppa över konfigurationen av behörighetspolicyn. Du kommer att gå tillbaka för att lägga till det i ett senare steg.
Spara IAM-rollen.
Skapa följande IAM-princip i samma konto som S3-hinken. Ersätt därefter följande värden:
-
<BUCKET>: Namnet på S3-burken. -
<KMS-KEY>: Valfritt. Om kryptering är aktiverat anger du namnet på KMS-nyckeln som krypterar S3-bucketinnehållet. Om kryptering är inaktiverat tar du bort hela KMS-avsnittet i IAM-principen. -
<AWS-ACCOUNT-ID>: Konto-ID för ditt AWS-konto (inte ditt Databricks-konto). -
<AWS-IAM-ROLE-NAME>: Namnet på den AWS IAM-roll som du skapade i föregående steg.
Den här IAM-principen ger skrivskyddad åtkomst.
{ "Version": "2012-10-17", "Statement": [ { "Action": ["s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation"], "Resource": ["arn:aws:s3:::<BUCKET>/*", "arn:aws:s3:::<BUCKET>"], "Effect": "Allow" }, { "Action": ["kms:Decrypt"], "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" } ] }Anmärkning
Om du behöver en mer restriktiv IAM-princip för Unity Catalog kontaktar du ditt Azure Databricks-kontoteam för att få hjälp.
-
Skapa en IAM-policy för filhändelser i samma konto som S3-bucket.
Anmärkning
Det här steget är valfritt men rekommenderas starkt. Om du inte ger Azure Databricks åtkomst till att konfigurera filhändelser åt dig måste du konfigurera filhändelser manuellt för varje plats. Om du inte gör det har du begränsad åtkomst till viktiga funktioner som Databricks kan släppa i framtiden. Mer information om filhändelser finns i Konfigurera filhändelser för en extern plats.
IAM-principen ger Azure Databricks behörighet att uppdatera din buckets konfiguration av händelsemeddelanden, skapa ett SNS-ämne, skapa en SQS-kö och prenumerera på SQS-kön till SNS-ämnet. Det här är nödvändiga resurser för funktioner som använder filhändelser. Ersätt
<BUCKET>med namnet på S3-bucketen.{ "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-*"] } ] }Koppla IAM-principerna till IAM-rollen.
På fliken Rollbehörighet bifogar du de IAM-principer som du nyss skapade.
Steg 2: Ge Azure Databricks IAM-rollinformationen
I Azure Databricks loggar du in på en arbetsyta som är länkad till Unity Catalog-metaarkivet.
Du måste ha privilegiet
CREATE STORAGE CREDENTIAL. Både administratörsrollerna för metaarkivet och kontoadministratören innehåller den här behörigheten.Klicka på
Katalog.
Klicka på knappen Externa data > , gå till fliken Autentiseringsuppgifter och välj Skapa autentiseringsuppgifter.
Välj en autentiseringstyp för AWS IAM-roll.
Ange ett namn för autentiseringsuppgifterna, IAM-roll-ARN:t som ger Unity Catalog åtkomst till lagringsplatsen i molnklientorganisationen och en valfri kommentar.
(Valfritt) Om du vill att användarna ska ha skrivskyddad åtkomst till de externa platser som använder den här lagringsautentiseringsuppgiften väljer du Skrivskyddade alternativ i Avancerade alternativ. Mer information finns i Markera en lagringsautentiseringsuppgift som skrivskyddad.
Anmärkning
Eftersom Azure Databricks endast ger skrivskyddad åtkomst till S3-bucketar med lagringsuppgifter behöver du inte ange det här alternativet.
Klicka på Skapa.
I dialogrutan Skapade lagringsautentiseringsuppgifter kopierar du Externt ID.
Klicka på Klart.
(Valfritt) Binda lagringsautentiseringsuppgifterna till specifika arbetsytor.
Som standard kan alla privilegierade användare använda lagringsautentiseringsuppgifterna på alla arbetsytor som är anslutna till metaarkivet. Om du bara vill tillåta åtkomst från specifika arbetsytor går du till fliken Arbetsytor och tilldelar arbetsytor. Se (Valfritt) Tilldela lagringsautentiseringsuppgifterna till specifika arbetsytor.
Du kan också skapa en lagringsautentiseringsuppgift med hjälp av Databricks Terraform-providern och databricks_storage_credential.
Steg 3: Uppdatera IAM-rollens förtroenderelationsprincip
I AWS ändrar du principen för förtroenderelation för att lägga till lagringsautentiseringsuppgifternas externa ID och göra det självförstålt.
Gå tillbaka till din sparade IAM-roll och gå till fliken Förtroenderelationer .
Redigera principen för förtroenderelation på följande sätt:
Lägg till följande ARN i deklarationen "Tillåt". Ersätt
<YOUR-AWS-ACCOUNT-ID>och<THIS-ROLE-NAME>med ditt faktiska konto-ID och IAM-rollvärden."arn:aws:iam::<YOUR-AWS-ACCOUNT-ID>:role/<THIS-ROLE-NAME>"I uttalandet
"sts:AssumeRole"uppdaterar du platshållarens externa ID till lagringsuppgifternas externa ID som du kopierade i föregående steg."sts:ExternalId": "<STORAGE-CREDENTIAL-EXTERNAL-ID>"Policyn bör nu se ut så här, med den uppdaterade ersättningstexten som använder ditt lagringsautentiseringsuppgifters externa ID, konto-ID och IAM-rollvärden.
{ "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>" } } } ] }
Steg 4: Verifiera lagringsautentiseringsuppgifterna
När du har gjort ändringarna i IAM-rollens förtroendeprincip i steg 3: Uppdatera princip för IAM-rollförtroende kontrollerar du att din IAM-roll är korrekt konfigurerad för att användas som lagringsautentiseringsuppgifter.
Anmärkning
För att verifiera konfigurationen måste du vara ägare av lagringsautentiseringsuppgifter, en metaarkivadministratör eller ha CREATE EXTERNAL LOCATION behörighet för lagringsautentiseringsuppgifterna.
I Azure Databricks loggar du in på en arbetsyta som är länkad till metaarkivet.
Klicka på
Katalog.
Klicka på knappen Externa data > och gå till fliken Autentiseringsuppgifter .
Alternativt kan du klicka på
kugghjulsikon överst i fönstret Katalog och välja Autentiseringsuppgifter.
Välj de lagringsautentiseringsuppgifter som du vill verifiera.
Klicka på
.Om någon av kontrollerna misslyckas går du tillbaka till Steg 3: Uppdatera IAM-rollens förtroenderelationsprincip och granska IAM-rollens förtroendeprincip för att konfigurera dem korrekt.
När lagringsautentiseringsuppgifterna har verifierats kan du använda den för att skapa en extern plats.
Självantagen princip för rollförverkligande
Den 30 juni 2023 uppdaterade AWS sin princip för IAM-rollförtroende för att kräva att IAM-roller uttryckligen har självförtroende för STS:AssumeRole anrop. Därför kräver Databricks att AWS IAM-roller för lagringsautentiseringsuppgifter är självförutsägande. Mer information finns i det här communityblogginlägget.
Den 20 januari 2025 började Databricks blockera användningen av befintliga lagringsreferenser med icke egenantagande IAM-roller. Det här förbudet kan bryta arbetsbelastningar och jobb som körs med autentiseringsuppgifter som inte är självbetjäningsbaserade.
För att kontrollera om en AWS IAM-roll för en lagringsautentisering är självantagande följer du anvisningarna i Steg 4: Validera lagringsautentiseringen. Om kontrollen Själv anta rollen misslyckas, gå tillbaka till steg 3: Uppdatera IAM-rollens förtroenderelationsprincip och konfigurera om IAM-rollens förtroendepolicy för att lita på sig själv.
Om du har flera autentiseringsuppgifter för lagring i ett metaarkiv som du vill kontrollera använder du följande notebook-fil för att verifiera de självförstålande funktionerna för alla autentiseringsuppgifter för lagring i metaarkivet:
Självförmodande anteckningsbok för verifiering av autentiseringsuppgifter för lagring
(Valfritt) Tilldela lagringsautentiseringsuppgifterna till specifika arbetsytor
Som standard är en lagringsautentiseringsuppgift tillgänglig från alla arbetsytor i metaarkivet. Det innebär att om en användare har beviljats behörighet (till exempel ) för lagringsautentiseringsuppgifterna kan de utöva den behörigheten från alla arbetsytor som CREATE EXTERNAL LOCATIONär kopplade till metaarkivet. Om du använder arbetsytor för att isolera åtkomst till användardata kanske du endast vill tillåta åtkomst till lagringsautentiseringsuppgifter från specifika arbetsytor. Den här funktionen kallas för bindning av arbetsytor eller isolering av lagringsautentiseringsuppgifter. Anvisningar finns i (Valfritt) Tilldela en lagringsautentiseringsuppgift till specifika arbetsytor.
Begränsningar
- I arbetsytor som använder serverlös utgående kontroll måste plattformsoberoende åtkomst till AWS S3-bucketar konfigureras med hjälp av API:et Nätverksprinciper.
Nästa steg
Visa, uppdatera, ta bort och ge andra användare behörighet att använda en lagringsautentiseringsuppgift. Se Hantera autentiseringsuppgifter för lagring.
Definiera externa platser med hjälp av en lagringsautentiseringsuppgift. Se Skapa en extern plats för att ansluta molnlagring till Azure Databricks.