Video: Introduction to Amazon Web Services by Leo Zhadanovsky 2025
Her er et indlysende spørgsmål, når det drejer sig om tredjeparts proxier: Hvorledes virker disse værktøjer på dine vegne, hvordan Amazon Web Services (AWS) ved, at den person på hvis vegne de handler er faktisk dig? Med andre ord, hvordan kan AWS autentificere din identitet for at sikre, at de kommandoer, den modtager, er fra dig?
Faktisk er det samme spørgsmål gyldigt, selvom du interagerer direkte med AWS API. Hvordan kan AWS validere din identitet for at sikre, at det kun udfører kommandoer til dig?
En måde er selvfølgelig, at du skal medtage dit brugernavn og adgangskode i API-opkaldene. Selvom nogle cloud-udbydere tager denne tilgang, gør Amazon ikke det.
I stedet for at stole på et brugernavn og et kodeord, afhænger det af to andre identifikatorer for at godkende sine API-serviceopkald: adgangstasten og den hemmelige adgangstast. Det bruger disse nøgler i serviceopkald til at implementere sikkerhed på en måde, der er langt mere sikker end at bruge kun dit brugernavn og adgangskode.
Så hvordan virker det? Når du tilmelder dig en konto hos AWS, har du mulighed for at oprette en adgangsnøgle og have en hemmelig adgangsnøgle sendt til dig. Hver enkelt er en lang række tilfældige tegn, og den hemmelige adgangstast er den længste af de to. Når du henter den hemmelige adgangstast, skal du gemme den et sted meget sikker, fordi det er nøglen (undskyld - dårlig ordsprog) til gennemførelse af sikre serviceopkald.
Når du har gjort det, har både dig og Amazon en kopi af adgangsnøglen og den hemmelige adgangsnøgle. At beholde en kopi af den hemmelige adgangsnøgle er afgørende, fordi det er vant til at kryptere oplysninger sendt frem og tilbage mellem dig og AWS, og hvis du ikke har den hemmelige adgangsnøgle, kan du ikke udføre nogen serviceopkald på AWS.
Den måde, de to nøgler bruges på, er konceptuelt enkel, selvom det er lidt udfordrende i detaljer.
For hvert serviceopkald, du vil udføre, skal du (eller et værktøj, der virker på dine vegne) gøre følgende:
-
Opret servicelinkets nyttelast.
Dette er de data, du skal sende til AWS. Det kan være et objekt, du vil gemme i S3 eller billedidentifikatoren for et billede, du vil starte. (Du vil også vedhæfte andre stykker information til nyttelastet, men fordi de varierer afhængigt af specifikationerne for serviceopkaldet, er de ikke angivet her. Et stykke data er den aktuelle tid.)
-
Krypter nyttelasten ved hjælp af den hemmelige adgangstast.
Gør det så, at ingen kan undersøge nyttelasten og opdage, hvad der er i det.
-
Digitalt signere den krypterede nyttelast ved at tilføje den hemmelige adgangsnøgle til den krypterede nyttelast og udføre en digital signaturproces ved hjælp af den hemmelige adgangstast.
Hemmelige adgangstaster er længere og mere tilfældige end typiske brugeradgangskoder; Den lange hemmelige adgangstast gør krypteringen udført med den mere sikker, end den ville være, hvis den blev udført med en typisk brugeradgangskode.
-
Send den samlede krypterede nyttelast sammen med din adgangstast til AWS via et serviceopkald.
Amazon bruger adgangsnøglen til at opsøge din hemmelige adgangsnøgle, som den bruger til at dekryptere nyttelasten. Hvis den dekrypterede nyttelast repræsenterer læsbar tekst, der kan udføres, udfører AWS servicekaldet. Ellers konkluderes det, at der er noget galt med serviceopkaldet (måske at det blev kaldt af en ondsindet skuespiller) og ikke udfører serviceopkaldet.
Ud over den netop beskrevne kryptering har AWS to andre metoder, som den bruger til at sikre legitimationen af serviceopkaldet:
-
Den første er baseret på datoen, der er indeholdt i serviceopkaldets nyttelast, som den bruger til at bestemme om tidspunktet i forbindelse med udførelsen af serviceopkaldet er hensigtsmæssigt hvis datoen i serviceopkaldet er meget forskellig fra hvad det skal være (meget tidligere eller senere end den nuværende tid, med andre ord), konkluderer AWS, at det ikke er et legitimt serviceopkald og kasserer det.
-
Den anden ekstra sikkerhedsforanstaltning indebærer et checksum du beregner for nyttelasten. (A checksum er et tal, der repræsenterer indholdet af en besked.) AWS beregner en checksum for nyttelastet; hvis kontrolsummen ikke er i overensstemmelse med din, forbyder den serviceopkaldet og udfører ikke det.
Denne checksummetode sikrer, at ingen tæmmer med indholdet af en meddelelse og forhindrer en ondsindet skuespiller i at aflytte et legitimt serviceopkald og ændre det for at udføre en uacceptabel handling. Hvis nogen tæmmer med meddelelsen, når AWS beregner et checksum, svarer checksummet ikke længere til det, der er inkluderet i meddelelsen, og AWS nægter at udføre serviceopkaldet.
Hvis du som de fleste AWS-brugere bruger en proxy-metode til at interagere med AWS - AWS-styringskonsollen, et sprogbibliotek eller et tredjepartsværktøj - skal du give din adgangstast og hemmelig adgangstast til proxyen. Når proxyen udfører AWS-serviceopkald på dine vegne, indeholder den adgangstasten i opkaldet og bruger den hemmelige adgangstast til at udføre nyttelastkryptering.
På grund af den kritiske rolle, som disse nøgler opfylder i AWS, bør du dele dem kun med enheder, du stoler på. Hvis du vil prøve et nyt tredjepartsværktøj, og du ikke ved meget om virksomheden, skal du oprette en AWS-testkonto for prøveperioden i stedet for at bruge dine AWS-kontooplysninger for din produktion.
På den måde, hvis du beslutter dig for ikke at gå videre med værktøjet, kan du slippe det, afslutte test-AWS-kontoen og gå videre uden bekymringer om mulige sikkerhedsproblemer i dine primære produktionskonti. Selvfølgelig kan du altid oprette nye adgangstaster og hemmelige adgangstaster, men ved at bruge dine produktionsnøgler til test, og derefter skifter nøglerne meget arbejde, fordi du skal opdatere hvert sted, der henviser til dine eksisterende nøgler.
Hvis du er ligesom mange andre AWS-brugere, bruger du en række værktøjer og biblioteker, og du går tilbage til dem for at opdatere dine nøgler er en smerte. Det er bedre at bruge ikke-produktionskonti til at teste nye værktøjer.