Tunnistetietojen turvallinen hallinta
Toteuttakaa parhaat käytännöt pilvipalveluntarjoajien tunnistetietojen ja arkaluonteisten tietojen turvalliseen hallintaan automatisoiduissa Terraform-putkissa.
Tunnistetietojen turvallinen hallinta on ilmainen Terraform ja infrastruktuuri koodina-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Terraform ja infrastruktuuri koodina-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Terraform ja infrastruktuuri koodina-kurssilla on yhteensä 4 oppituntia.
Tunnistetietojen suojaaminen CI/CD:ssä
Kun infrastruktuuria automatisoidaan Terraformilla CI/CD-putkessa, putki tarvitsee pääsyn pilvipalveluntarjoajien tileille. Näiden tunnistetietojen turvallinen hallinta on ensiarvoisen tärkeää luvattoman käytön ja tietomurtojen estämiseksi.
Ajattele asiaa niin, että annat robotille talosi avaimet. Haluat varmistaa, että oikealla robotilla on oikeat avaimet ja että avaimet on suojattu.
Älä kovakoodaa salaisuuksia
Yleinen virhe on upottaa arkaluonteisia tietoja, kuten API-avaimia tai salasanoja, suoraan Terraform-määritystiedostoihin tai CI/CD-komentosarjoihin. Tätä kutsutaan kovakoodaukseksi.
- Tietoturvariski: Salaisuudet päätyvät lähdekoodin historiaan, esimerkiksi Gitiin.
- Paljastuminen: Kuka tahansa repositorion käyttöoikeuden omaava voi nähdä ne.
- Ylläpito: Salaisuuden muuttaminen edellyttää koodin muokkaamista ja uutta käyttöönottoa.
Ympäristömuuttujat (perusteet)
Paikallista kehitystä tai yksinkertaisia tilanteita varten ympäristömuuttujat ovat helppo tapa välittää tunnistetietoja ilman kovakoodausta. Asetat ne komentotulkissa ennen Terraformin suorittamista.
Vaikka tämä on parempi kuin kovakoodaus, se ei ole ihanteellinen ratkaisu jaettuihin CI/CD-putkiin, koska salaisuudet voivat huolimattomasti käsiteltyinä näkyä lokeissa tai prosessiluetteloissa.
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="abcdef..."
terraform planCI/CD-alustojen salaisuuksien hallinta
Nykyaikaiset CI/CD-alustat tarjoavat sisäänrakennettuja salaisuuksien hallintaominaisuuksia. Niiden avulla arkaluonteiset tiedot voidaan tallentaa turvallisesti alustalle erilleen koodirepositoriosta.
Putken suorittuessa nämä salaisuudet välitetään koontiympäristöön ympäristömuuttujina tai tiedostoina, mutta niitä ei paljasteta lokeissa eikä tallenneta repositorioon.
GitHub Actionsin salaisuuksien esimerkki
GitHub Actions tarjoaa repositorion salaisuuksille oman osionsa. Voit lisätä niitä valitsemalla Settings > Secrets and variables > Actions > New repository secret.
Voit viitata näihin salaisuuksiin työnkulkutiedostossa käyttämällä secrets-kontekstia. Ne peitetään lokeissa automaattisesti.
name: Deploy Infra
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Terraform Init
run: terraform initPilviputkien Cloud IAM -roolit
Turvallisin tapa todentaa CI/CD pilvipalveluntarjoajille on käyttää palveluntarjoajan tarjoamia Identity and Access Management (IAM) -rooleja tai palvelutilejä.
Pitkäkestoisten käyttöavainten sijaan CI/CD-putki ottaa käyttöön tilapäisen, tietyillä käyttöoikeuksilla varustetun roolin ja hyödyntää usein OpenID Connectia (OIDC) luottamussuhteissa. Näin staattisia tunnistetietoja ei tarvitse tallentaa lainkaan.
AWS IAM -roolin ja OIDC:n esimerkki
AWS:ssä voit määrittää IAM-roolin, jonka GitHub Actions -työnkulku voi ottaa suoraan käyttöön OIDC:n avulla. Tällöin AWS-käyttöavaimia ei tallenneta mihinkään!
Määrität roolille luottamuskäytännön, joka sallii GitHubin OIDC-palveluntarjoajan ottaa roolin käyttöön tiettyjen ehtojen, kuten repositorion tai haaran, perusteella.
resource "aws_iam_role" "github_actions_role" {
name = "github-actions-oidc-role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Allow"
Principal = {
Federated = "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com"
}
Action = "sts:AssumeRoleWithWebIdentity"
Condition = {
StringEquals = {
"token.actions.githubusercontent.com:aud" : "sts.amazonaws.com"
}
StringLike = {
"token.actions.githubusercontent.com:sub" : "repo:your-org/your-repo:*"
}
}
}
]
})
}Terraformin arkaluonteiset tulosteet
Terraformin tulosteet saattavat joskus sisältää arkaluonteisia tietoja, kuten tietokantojen salasanoja tai yksityisiä avaimia. Tällaiset tulosteet tulee merkitä määritteellä sensitive.
Kun tuloste on merkitty arkaluonteiseksi, Terraform peittää sen arvon CLI-tulosteessa ja tilatiedostossa näyttämisen yhteydessä. Tämä auttaa estämään tahattomat paljastumiset.
output "database_password" {
value = aws_db_instance.main.password
description = "The database root password."
sensitive = true
}Tunnistetietojen turvallisuuden tarkistus
Mitä menetelmää pidetään yleensä turvallisimpana tapana todentaa CI/CD-putket pilvipalveluntarjoajille ilman pitkäkestoisten staattisten tunnistetietojen tallentamista?
Kertaus: tunnistetietojen suojaaminen
Olet oppinut keskeisiä strategioita arkaluonteisten tietojen hallintaan Terraformin CI/CD-putkissa:
- Vältä kovakoodausta: Älä koskaan upota salaisuuksia suoraan koodiin.
- Hyödynnä CI/CD-salaisuuksia: Käytä staattisten tunnistetietojen hallintaan alustakohtaisia salaisuuksien hallintajärjestelmiä.
- Hyödynnä IAM-rooleja ja OIDC:tä: Parhaan tietoturvan saavuttamiseksi käytä pilvipalveluntarjoajan IAM-rooleja ja OIDC:tä tilapäisten käyttöoikeuksien saamiseen ilman avainten tallentamista.
- Merkitse arkaluonteiset tulosteet: Suojaa Terraformin tulosteiden paljastamat arkaluonteiset tiedot.
Nämä käytännöt ovat välttämättömiä vankan ja turvallisen infrastruktuurin ylläpitämiseksi.
Opi Terraform ja infrastruktuuri koodina tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Tunnistetietojen turvallinen hallinta” ilmainen?
Kyllä – oppitunnin ”Tunnistetietojen turvallinen hallinta” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Terraform ja infrastruktuuri koodina-kurssin, päivitä CoddyKit PROhon. Terraform ja infrastruktuuri koodina-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Tunnistetietojen turvallinen hallinta”?
Toteuttakaa parhaat käytännöt pilvipalveluntarjoajien tunnistetietojen ja arkaluonteisten tietojen turvalliseen hallintaan automatisoiduissa Terraform-putkissa. Harjoittelet Terraform ja infrastruktuuri koodina-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Terraform ja infrastruktuuri koodina-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Terraform ja infrastruktuuri koodina-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Tunnistetietojen turvallinen hallinta”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Terraform ja infrastruktuuri koodina-oppitunnilla?
Kyllä. Jokainen Terraform ja infrastruktuuri koodina-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Terraform CI/CD-putkissa
- `plan`- ja `apply`-toimintojen automatisointi
- Tunnistetietojen turvallinen hallinta
- GitOps ja pull request -automaatio