Platon Data Intelligence.
Pystyhaku ja Ai.

Määritä Amazon Redshift -klusterien tilien välinen käyttö Amazon SageMaker Studiossa VPC-verkon kautta | Amazon Web Services

Treffi:

Pilvitekniikan myötä, kun laskentatehoa ja dataa on saatavilla enemmän, koneoppiminen (ML) vaikuttaa nyt kaikilla toimialoilla ja on keskeinen osa jokaista liiketoimintaa ja toimialaa.

Amazon SageMaker Studio on ensimmäinen täysin integroitu ML-kehitysympäristö (IDE), jossa on web-pohjainen visuaalinen käyttöliittymä. Voit suorittaa kaikki ML-kehitysvaiheet ja saada täydellisen pääsyn, hallinnan ja näkyvyyden jokaiseen vaiheeseen, jota tarvitaan mallien rakentamiseen, kouluttamiseen ja käyttöönottoon.

Amazonin punainen siirto on täysin hallittu, nopea, turvallinen ja skaalautuva pilvitietovarasto. Organisaatiot haluavat usein käyttää SageMaker Studiota saadakseen ennusteita tietovarastoon, kuten Amazon Redshiftiin, tallennetuista tiedoista.

Kuten kohdassa Hyvin suunniteltu AWS-kehysTyökuormien erottaminen tilien välillä mahdollistaa sen, että organisaatiosi voi asettaa yhteiset suojakaiteet ja eristää ympäristöt. Tämä voi olla erityisen hyödyllistä tietyissä turvallisuusvaatimuksissa sekä kustannusten hallinnan ja projektien ja tiimien välisen seurannan yksinkertaistamisessa. Usean tilin arkkitehtuuria käyttävillä organisaatioilla on yleensä Amazon Redshift ja SageMaker Studio kahdessa erillisessä AWS-tilissä. Myös Amazon Redshift ja SageMaker Studio on tyypillisesti määritetty VPC:issä, joissa on yksityiset aliverkot, turvallisuuden parantamiseksi ja luvattoman käytön riskin vähentämiseksi parhaana käytäntönä.

Amazonin punainen siirto natiivisti tukee tilien välinen tiedonjako, kun käytetään RA3-solmutyyppejä. Jos käytät mitä tahansa muuta Amazon Redshift -solmutyyppiä, kuten DS2 tai DC2, voit käyttää VPC peeringiä luodaksesi tilien välisen yhteyden Amazon Redshiftin ja SageMaker Studion välille.

Tässä viestissä käymme läpi vaiheittaiset ohjeet tilien välisen yhteyden muodostamiseksi mihin tahansa Amazon Redshift -solmutyyppiin (RA3, DC2, DS2) yhdistämällä yhdessä AWS-tilissä sijaitseva Amazon Redshift -klusteri SageMaker Studioon toisessa AWS:ssä. tili samalla alueella VPC peeringillä.

Ratkaisun yleiskatsaus

Aloitamme kahdella AWS-tilillä: tuottajatilillä Amazon Redshift -tietovarastossa ja kuluttajatilillä Amazon Sage Maker ML-käyttötapauksia, joissa SageMaker Studio on määritetty. Seuraavassa on korkeatasoinen yleiskatsaus työnkulkuun:

  1. Ota SageMaker Studio käyttöön VPCOnly tila kuluttajatilillä. Tämä estää SageMakeria tarjoamasta Internet-yhteyttä studiomuistikirjoillesi. Kaikki SageMaker Studio -liikenne kulkee määritettyjen VPC:n ja aliverkkojen kautta.
  2. Päivitä SageMaker Studio -verkkotunnuksesi ottaaksesi käyttöön SourceIdentity levittääksesi käyttäjäprofiilin nimeä.
  3. Luo AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) rooli Amazon Redshift -tuottajatilillä, jonka SageMaker Studion IAM-rooli ottaa käyttöönsä Amazon Redshiftin.
  4. Päivitä SageMaker Studion kuluttajatilin SageMaker IAM -suoritusrooli, jota SageMaker Studio käyttää ottamaan roolin tuottaja Amazon Redshift -tilillä.
  5. Luo peering-yhteys VPC:iden välille Amazon Redshift -tuottajatilin ja SageMaker Studio -kuluttajatilin välillä.
  6. Tee Amazon Redshift -kysely kuluttajatilin SageMaker Studiossa.

Seuraava kaavio kuvaa ratkaisuarkkitehtuuriamme.

Edellytykset

Tämän viestin vaiheissa oletetaan, että Amazon Redshift käynnistetään Amazon Redshift -tuottajatilin yksityisessä aliverkossa. Amazon Redshiftin käynnistäminen yksityisessä aliverkossa tarjoaa lisäsuojausta ja eristystä verrattuna sen käynnistämiseen julkisessa aliverkossa, koska yksityinen aliverkko ei ole suoraan käytettävissä Internetistä ja se on suojattu ulkoisilta hyökkäyksiltä.

Julkisten kirjastojen lataamiseksi sinun on luotava VPC ja yksityinen ja julkinen aliverkko SageMaker-kuluttajatilille. Käynnistä sitten NAT-yhdyskäytävä julkisessa aliverkossa ja lisää SageMaker Studion Internet-yhdyskäytävä yksityiseen aliverkkoon, jotta voit käyttää Internetiä. Katso ohjeet yhteyden muodostamiseen yksityiseen aliverkkoon Kuinka määritän NAT-yhdyskäytävän yksityiselle aliverkolle Amazon VPC:ssä?

Ota SageMaker Studio käyttöön VPCOnly-tilassa kuluttajatilillä

Voit luoda SageMaker Studion kanssa VPCOnly tilassa, suorita seuraavat vaiheet:

  1. Valitse SageMaker-konsolissa studio navigointipaneelissa.
  2. Käynnistä SageMaker Studio, valitse Vakioasetus, ja valitse Configure.

Jos käytät jo AWS IAM Identity Center (AWS Single Sign-On:n seuraaja) käyttääksesi AWS-tilejäsi, voit käyttää sitä todentamiseen. Muussa tapauksessa voit käyttää IAM:ia todentamiseen ja olemassa olevia yhdistettyjä roolejasi.

  1. In Yleiset asetukset , valitse Luo uusi rooli.
  2. In Luo IAM-rooli -osiossa, määritä valinnaisesti omasi Amazonin yksinkertainen tallennuspalvelu (Amazon S3) kauhat valitsemalla mitään, Erityinentai Ei eristetty, valitse sitten Luo rooli.

Tämä luo SageMaker-suoritusroolin, kuten AmazonSageMaker-ExecutionRole-00000000.

  1. Alle Verkko ja tallennus -osio, valitse VPC, aliverkko (yksityinen aliverkko) ja suojausryhmä, jonka olet luonut edellytyksenä.
  2. valita Vain VPC, valitse sitten seuraava.

Päivitä SageMaker Studio -verkkotunnuksesi ottaaksesi SourceIdentity käyttöön käyttäjäprofiilin nimen levittämiseksi

SageMaker Studio on integroitu AWS CloudTrail antaa järjestelmänvalvojille mahdollisuuden seurata ja tarkastaa käyttäjien toimintaa ja API-kutsuja SageMaker Studio -muistikirjoista. Voit määrittää SageMaker Studion tallentamaan käyttäjän identiteetin (erityisesti käyttäjäprofiilin nimi) seurata ja tarkastaa käyttäjien toimintaa ja API-kutsuja SageMaker Studio -muistikirjoista CloudTrail-tapahtumissa.

Jos haluat kirjata tietyn käyttäjätoiminnan useiden käyttäjäprofiilien kesken, suosittelemme, että otat käyttöön SourceIdentity levittääksesi SageMaker Studio -toimialueen käyttäjäprofiilin nimellä. Tämän avulla voit säilyttää käyttäjätiedot istunnossa, jotta voit liittää toimintoja tietylle käyttäjälle. Tämä attribuutti säilyy myös rooleja ketjutettaessa, joten saat tarkan näkyvyyden niiden toimiin tuottajatilillä. Tämän viestin kirjoittamishetkestä lähtien voit määrittää tämän vain käyttämällä AWS-komentoriviliitäntä (AWS CLI) tai mikä tahansa komentorivityökalu.

Tämän määrityksen päivittäminen edellyttää, että kaikki verkkotunnuksen sovellukset ovat verkkotunnuksessa Pysäytetty or Poistettu valtio.

Käytä seuraavaa koodia salliaksesi käyttäjäprofiilin nimen leviämisen SourceIdentity:

update-domain
--domain-id <value>
[--default-user-settings <value>]
[--domain-settings-for-update "ExecutionRoleIdentityConfig=USER_PROFILE_NAME"]

Tämä edellyttää, että lisäät sts:SetSourceIdentity toimeenpanotehtäväsi luottamussuhteessa.

Luo Amazon Redshift -tuottajatilille IAM-rooli, jonka SageMaker Studion on oletettava päästäkseen Amazon Redshift -ohjelmaan

Voit luoda roolin, jonka SageMaker olettaa käyttämään Amazon Redshiftiä, suorittamalla seuraavat vaiheet:

  1. Avaa IAM-konsoli Amazon Redshift -tuottajatilillä.

  1. Valita Roolit navigointiruudussa ja valitse sitten Luo rooli.

  1. On Valitse luotettu taho sivu, valitse Mukautettu luottamuskäytäntö.
  2. Kirjoita seuraava mukautettu luottamuskäytäntö editoriin ja anna SageMaker-kuluttajatilisi tunnus ja luomasi SageMaker-suoritusrooli:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<<SageMaker-Consumer-Account-ID>>:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXX" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ] } ]
}

  1. Valita seuraava.
  2. On Lisää vaaditut käyttöoikeudet sivu, valitse Luo käytäntö.
  3. Lisää seuraava esimerkkikäytäntö ja tee tarvittavat muutokset määritystesi perusteella.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetRedshiftCredentials", "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:<<redshift-region-name>>:<<REDSHIFT-PRODUCER-ACCOUNT-ID>>:dbname:<<redshift-cluster-name>>/<<redshift-db-name>>", "arn:aws:redshift:<<redshift-region-name>>:<<REDSHIFT-PRODUCER-ACCOUNT-ID>>:dbuser:<<redshift-cluster-name>>/${redshift:DbUser}", "arn:aws:redshift:<<redshift-region-name>>:<<REDSHIFT-PRODUCER-ACCOUNT-ID>>:cluster:<<redshift-cluster-name>>" ], "Condition": { "StringEquals": { "redshift:DbUser": "${aws:SourceIdentity}" } } }, { "Sid": "DynamicUserCreation", "Effect": "Allow", "Action": "redshift:CreateClusterUser", "Resource": "arn:aws:redshift:<<redshift-region-name>>:<<REDSHIFT-PRODUCER-ACCOUNT-ID>>:dbuser:<<redshift-cluster-name>>/${redshift:DbUser}", "Condition": { "StringEquals": { "redshift:DbUser": "${aws:SourceIdentity}" } } }, { "Effect": "Allow", "Action": "redshift:JoinGroup", "Resource": "arn:aws:redshift:<<redshift-region-name>>:<<REDSHIFT-PRODUCER-ACCOUNT-ID>>:dbgroup:<<redshift-cluster-name>>/*" }, { "Sid": "DataAPIPermissions", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:CancelStatement", "redshift-data:ListStatements", "redshift-data:GetStatementResult", "redshift-data:DescribeStatement", "redshift-data:ListDatabases", "redshift-data:ListSchemas", "redshift-data:ListTables", "redshift-data:DescribeTable" ], "Resource": "*" }, { "Sid": "ReadPermissions", "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ViewQueriesInConsole" ], "Resource": "*" } ]
}

  1. Tallenna käytäntö lisäämällä nimi, esim RedshiftROAPIUserAccess.

- SourceIdentity attribuuttia käytetään yhdistämään alkuperäisen SageMaker Studio -käyttäjän henkilöllisyys Amazon Redshift -tietokannan käyttäjään. Käyttäjän toimintoja tuottajatilillä voidaan sitten seurata CloudTrailin ja Amazon Redshift -tietokannan auditointilokien avulla.

  1. On Nimeä, tarkista ja luo -sivulle, anna roolin nimi, tarkista asetukset ja valitse Luo rooli.

Päivitä IAM-rooli SageMaker-kuluttajatilillä, jonka SageMaker Studio olettaa Amazon Redshift -tuottajatilillä

Päivitä SageMaker-suoritusrooli, jotta se saa juuri luomamme roolin, suorittamalla seuraavat vaiheet:

  1. Avaa IAM-konsoli SageMaker-kuluttajatilillä.
  2. Valita Roolit navigointiruudussa ja valitse sitten luomamme SageMaker-suoritusrooli (AmazonSageMaker-ExecutionRole-*).
  3. In Käyttöoikeuskäytäntö -osassa Lisää käyttöoikeudet valikosta, valitse Luo sisäinen käytäntö.

  1. Editorissa, osoitteessa JSON -välilehti, kirjoita seuraava käytäntö, missä on Amazon Redshift -tuottajatilillä luomasi roolin ARN:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "<StudioRedshiftRoleARN>" }
}

Voit saada Amazon Redshift -tuottajatilillä luodun roolin ARN:n IAM-konsolissa, kuten seuraavassa kuvakaappauksessa näkyy.

  1. Valita Tarkastele politiikkaa.
  2. varten Nimi, anna käytännöllesi nimi.
  3. Valita Luo käytäntö.

Lupakäytäntöjesi pitäisi näyttää seuraavan kuvakaappauksen kaltaisilta.

Luo peering-yhteys Amazon Redshift -tuottajatilin VPC:iden ja SageMaker Studio -kuluttajatilin välille

Viestinnän muodostamiseksi SageMaker Studio VPC:n ja Amazon Redshift VPC:n välille näiden kahden VPC:n on verkottava VPC peeringiä. Suorita seuraavat vaiheet yhteyden muodostamiseksi:

  1. Avaa Amazon VPC -konsoli joko Amazon Redshift- tai SageMaker-tilillä.
  2. Valitse siirtymisruudussa Peering-yhteydet, valitse sitten Luo peering-yhteys.
  3. varten Nimi, anna yhteydellesi nimi.
  4. Alle Valitse paikallinen VPC vertaistukea varten, valitse paikallinen VPC.
  5. Alle Valitse toinen VPC vertaistukea varten, määritä toinen VPC samalla alueella ja toinen tili.
  6. Valita Luo peering-yhteys.

  1. Tarkista VPC peering -yhteys ja valitse Hyväksy pyyntö aktivoida.

Kun VPC-peering-yhteys on muodostettu onnistuneesti, luot reittejä sekä SageMaker- että Amazon Redshift VPC:ille täydentääksesi niiden välisen yhteyden.

  1. Avaa SageMaker-tilillä Amazon VPC -konsoli.
  2. Valita Reittitaulukot navigointiruudussa, valitse sitten SageMakeriin liitetty VPC ja muokkaa reittejä.
  3. Lisää CIDR kohteen Amazon Redshift VPC:lle ja kohteelle peering-yhteydeksi.
  4. Lisää lisäksi NAT-yhdyskäytävä.
  5. Valita Tallenna muutokset.

  1. Avaa Amazon Redshift -tilillä Amazon VPC -konsoli.
  2. Valita Reittitaulukot navigointiruudussa, valitse Amazon Redshiftiin liitetty VPC ja muokkaa reittejä.
  3. Lisää CIDR kohde SageMaker VPC:lle ja kohde peering-yhteydeksi.
  4. Lisää lisäksi Internet-yhdyskäytävä.
  5. Valita Tallenna muutokset.

Voit muodostaa yhteyden SageMaker Studioon VPC:stä VPC:n käyttöliittymäpäätepisteen kautta Internetin kautta yhdistämisen sijaan. Kun käytät VPC-rajapinnan päätepistettä, viestintä VPC:n ja SageMaker API:n tai suoritusajan välillä tapahtuu kokonaan ja turvallisesti AWS-verkon sisällä.

  1. Luo VPC-päätepiste SageMaker-tilillä avaamalla VPC-konsoli.
  2. Valita Endpoints navigointiruudussa ja valitse sitten Luo päätepiste.
  3. Määritä SageMaker VPC, vastaavat aliverkot ja asianmukaiset suojausryhmät salliaksesi saapuvan ja lähtevän NFS-liikenteen SageMaker-muistikirjaverkkotunnuksellesi ja valitse Luo VPC-päätepiste.

Tee Amazon Redshift -kysely kuluttajatilin SageMaker Studiossa

Kun kaikki verkot on muodostettu onnistuneesti, seuraa tämän osan vaiheita muodostaaksesi yhteyden Amazon Redshift -klusteriin SageMaker Studion kuluttajatilillä käyttämällä AWS SDK for pandas -kirjastoa:

  1. Luo uusi muistikirja SageMaker Studiossa.
  2. Jos AWS SDK for pandas -pakettia ei ole asennettu, voit asentaa sen seuraavasti:
!pip install awswrangler #AWS SDK for pandas

Tämä asennus ei ole pysyvä ja katoaa, jos KernelGateway-sovellus poistetaan. Mukautettuja paketteja voidaan lisätä osana a Elinkaarimääritys.

  1. Kirjoita seuraava koodi ensimmäiseen soluun ja suorita koodi. Korvata RoleArn ja region_name arvot, jotka perustuvat tilisi asetuksiin:
import boto3
import awswrangler as wr
import pandas as pd
from datetime import datetime
import json
sts_client = boto3.client('sts') # Call the assume_role method of the STSConnection object and pass the role
# ARN and a role session name.
assumed_role_object=sts_client.assume_role( RoleArn="arn:aws:iam::<<REDSHIFT-PRODUCER-ACCOUNT-ID>>:role/<<redshift-account-role>>", RoleSessionName="RedshiftSession"
)
credentials=assumed_role_object['Credentials'] # Use the temporary credentials that AssumeRole returns to make a # connection to Amazon S3 redshift_session=boto3.Session( aws_access_key_id=credentials['AccessKeyId'], aws_secret_access_key=credentials['SecretAccessKey'], aws_session_token=credentials['SessionToken'], region_name="<<redshift-region-name>>",
)

  1. Kirjoita seuraava koodi uuteen soluun ja suorita koodi saadaksesi nykyisen SageMaker-käyttäjäprofiilin nimen:
def get_userprofile_name(): metadata_file_path = '/opt/ml/metadata/resource-metadata.json' with open(metadata_file_path, 'r') as logs: metadata = json.load(logs) return metadata.get("UserProfileName")

  1. Kirjoita seuraava koodi uuteen soluun ja suorita koodi:
con_redshift = wr.redshift.connect_temp( cluster_identifier="<<redshift-cluster-name>>", database="<<redshift-db-name>>", user=get_userprofile_name(), auto_create=True, db_groups=[<<list-redshift-user-group>>], boto3_session = redshift_session
)

Tehdäkseen Amazon Redshiftin kyselyn onnistuneesti tietokannan järjestelmänvalvojan on määritettävä äskettäin luodulle käyttäjälle tarvittavat lukuoikeudet tuottajatilin Amazon Redshift -klusterissa.

  1. Kirjoita seuraava koodi uuteen soluun, päivitä kysely vastaamaan Amazon Redshift -taulukkoasi ja suorita solu. Tämän pitäisi palauttaa tietueet onnistuneesti tietojen jatkokäsittelyä ja analysointia varten.
df = wr.redshift.read_sql_query( sql="SELECT * FROM users", con=con_redshift
)

Nyt voit alkaa rakentaa datan muunnoksia ja analyyseja yrityksesi vaatimusten perusteella.

Puhdistaa

Voit puhdistaa kaikki resurssit välttääksesi toistuvia kustannuksia poistamalla SageMaker VPC -päätepisteet, Amazon Redshift -klusterin ja SageMaker Studio -sovellukset, käyttäjät ja verkkotunnuksen. Poista myös kaikki luomasi S3-ryhmät ja objektit.

Yhteenveto

Tässä viestissä osoitimme, kuinka luodaan tilien välinen yhteys yksityisten Amazon Redshiftin ja SageMaker Studion VPC:iden välille eri tileillä VPC peeringin avulla ja päästään Amazon Redshift -tietoihin SageMaker Studiossa käyttämällä IAM-rooliketjutusta, samalla kun kirjataan käyttäjän identiteetti, kun käyttäjä käytti Amazon Redshiftiä SageMaker Studiosta. Tämän ratkaisun avulla sinun ei tarvitse siirtää tietoja manuaalisesti tilien välillä tietojen saamiseksi. Kävimme myös läpi, kuinka pääset Amazon Redshift -klusteriin käyttämällä AWS SDK for pandas -kirjastoa SageMaker Studiossa ja valmistelemme tiedot ML-käyttötapauksiasi varten.

Lisätietoja Amazon Redshiftistä ja SageMakerista on osoitteessa Amazon Redshift -tietokannan kehittäjäopas ja Amazon SageMaker -dokumentaatio.


Tietoja Tekijät

Supriya Puragundla on AWS:n vanhempi ratkaisuarkkitehti. Hän auttaa avainasiakkaita heidän tekoäly- ja ML-matkallaan. Hän on intohimoinen tietopohjaisesta tekoälystä ja koneoppimisen syvyysalueesta.

Marc Karp on koneoppimisarkkitehti Amazon SageMaker -tiimin kanssa. Hän keskittyy auttamaan asiakkaita suunnittelemaan, ottamaan käyttöön ja hallitsemaan ML-työkuormia laajasti. Vapaa-ajallaan hän nauttii matkustamisesta ja uusien paikkojen tutkimisesta.

spot_img

Uusin älykkyys

spot_img

Keskustele kanssamme

Hei siellä! Kuinka voin olla avuksi?