0Pricing
Terraform Infrastructure as Code · Ders

Kimlik Bilgilerini Güvenli Yönetme

Bulut sağlayıcısı kimlik bilgilerini ve hassas verileri otomatik Terraform iş akışlarınızda güvenli biçimde yönetmeye yönelik en iyi uygulamaları uygulayın.

Kimlik Bilgilerini Güvenli Yönetme, CoddyKit'te ücretsiz bir Terraform Infrastructure as Code dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Terraform Infrastructure as Code öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Terraform Infrastructure as Code kursu toplamda 4 dersten oluşur.

CI/CD'de Kimlik Bilgilerini Güvenli Tutma

Terraform ile altyapıyı bir CI/CD işlem hattında otomatikleştirirken işlem hattınızın bulut sağlayıcısı hesaplarına erişmesi gerekir. Yetkisiz erişimi ve veri ihlallerini önlemek için bu kimlik bilgilerini güvenli biçimde yönetmek son derece önemlidir.

Bunu bir robota evinizin anahtarlarını vermek gibi düşünebilirsiniz. Yalnızca doğru robotun doğru anahtarlara sahip olduğundan ve bu anahtarların korunduğundan emin olmak istersiniz.

Gizli Bilgileri Sabit Kodlamaktan Kaçının

Yaygın bir hata, API anahtarları veya parolalar gibi hassas bilgileri doğrudan Terraform yapılandırma dosyalarına ya da CI/CD betiklerine yerleştirmektir. Buna sabit kodlama denir.

  • Güvenlik Riski: Gizli bilgiler kaynak kod geçmişinizin bir parçası hâline gelir.
  • Ortaya Çıkma: Depoya erişimi olan herkes bunları görebilir.
  • Bakım: Bir gizli bilgiyi değiştirmek, kodu değiştirip yeniden dağıtmayı gerektirir.

Ortam Değişkenleri (Temel)

Yerel geliştirme veya temel senaryolar için ortam değişkenleri, kimlik bilgilerini sabit kodlamadan sağlamanın basit bir yoludur. Bunları Terraform'ı çalıştırmadan önce kabuğunuzda ayarlarsınız.

Sabit kodlamadan daha iyi olsa da gizli bilgiler dikkatle işlenmezse günlüklerde veya işlem listelerinde hâlâ görünebildiğinden, bu yöntem paylaşılan CI/CD işlem hatları için ideal değildir.

export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="abcdef..."
terraform plan

CI/CD Platformlarının Gizli Bilgi Yöneticileri

Modern CI/CD platformları, yerleşik gizli bilgi yönetimi özellikleri sunar. Bunlar, hassas verileri kod deponuzdan ayrı olarak platformun içinde güvenli biçimde saklamanızı sağlar.

İşlem hattınız çalıştığında bu gizli bilgiler derleme ortamına ortam değişkenleri veya dosyalar olarak aktarılır; ancak günlüklerde hiçbir zaman görünmez ve deponuzda saklanmaz.

GitHub Actions Gizli Bilgi Örneği

GitHub Actions, depo gizli bilgileri için ayrılmış bir bölüm sunar. Bunları Settings > Secrets and variables > Actions > New repository secret yoluyla ekleyebilirsiniz.

Ardından iş akışı dosyanızda bu gizli bilgilere secrets bağlamını kullanarak başvurabilirsiniz. Bunlar günlüklerde otomatik olarak maskelenir.

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 init

İşlem Hatları İçin Bulut IAM Rolleri

CI/CD kimlik doğrulaması için en güvenli yaklaşım, bulut sağlayıcınızın sunduğu Kimlik ve Erişim Yönetimi (IAM) rollerini veya hizmet hesaplarını kullanmaktır.

CI/CD işlem hattınız, uzun ömürlü erişim anahtarları yerine belirli izinlere sahip geçici bir rolü üstlenir ve güven ilişkileri için çoğu zaman OpenID Connect (OIDC)'ten yararlanır. Böylece sabit kimlik bilgilerini saklama gereksinimi tamamen ortadan kalkar.

AWS IAM Rolü + OIDC Örneği

AWS için GitHub Actions iş akışınızın OIDC kullanarak doğrudan üstlenebileceği bir IAM Rolü yapılandırabilirsiniz. Bu, AWS erişim anahtarlarının hiçbir yerde saklanmayacağı anlamına gelir!

Rol için, GitHub'ın OIDC sağlayıcısının belirli koşullara (örneğin depo veya dal) göre rolü üstlenmesine izin veren bir güven ilkesi tanımlarsınız.

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:*"
          }
        }
      }
    ]
  })
}

Terraform Hassas Çıktıları

Bazen Terraform çıktıları veritabanı parolaları veya özel anahtarlar gibi hassas veriler içerebilir. Bu çıktıları sensitive olarak işaretlemelisiniz.

Bir çıktı hassas olarak işaretlendiğinde Terraform, görüntülenirken değerini CLI çıktısında ve durum dosyasında gizler; bu da yanlışlıkla açığa çıkmasını önlemeye yardımcı olur.

output "database_password" {
  value       = aws_db_instance.main.password
  description = "The database root password."
  sensitive   = true
}

Güvenli Kimlik Bilgisi Denetimi

Uzun ömürlü sabit kimlik bilgilerini saklama gereksinimini ortadan kaldırarak CI/CD işlem hatlarının bulut sağlayıcılarında kimlik doğrulaması yapması için genellikle en güvenli kabul edilen yöntem hangisidir?

Özet: Güvenli Kimlik Bilgileri

Terraform CI/CD işlem hatlarınızda hassas verileri yönetmek için kritik stratejileri öğrendiniz:

  • Sabit Kodlamaktan Kaçının: Gizli bilgileri doğrudan kodunuza asla yerleştirmeyin.
  • CI/CD Gizli Bilgilerinden Yararlanın: Sabit kimlik bilgileri için platforma özgü gizli bilgi yöneticilerini kullanın.
  • IAM Rolleri/OIDC Kullanımını Benimseyin: En üst düzey güvenlik için anahtarları saklamadan geçici izinler üstlenmek amacıyla OIDC ile bulut sağlayıcısı IAM rollerini kullanın.
  • Hassas Çıktıları İşaretleyin: Terraform çıktılarının açığa çıkardığı hassas verileri koruyun.

Bu uygulamalar, sağlam ve güvenli bir altyapının sürdürülmesi için hayati önem taşır.

Sıkça Sorulan Sorular

“Kimlik Bilgilerini Güvenli Yönetme” dersi ücretsiz mi?

Evet — “Kimlik Bilgilerini Güvenli Yönetme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Terraform Infrastructure as Code kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Terraform Infrastructure as Code kursu toplamda 4 dersten oluşur.

“Kimlik Bilgilerini Güvenli Yönetme” dersinde ne öğreneceğim?

Bulut sağlayıcısı kimlik bilgilerini ve hassas verileri otomatik Terraform iş akışlarınızda güvenli biçimde yönetmeye yönelik en iyi uygulamaları uygulayın. Terraform Infrastructure as Code ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Terraform Infrastructure as Code öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Terraform Infrastructure as Code, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Kimlik Bilgilerini Güvenli Yönetme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Terraform Infrastructure as Code dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Terraform Infrastructure as Code dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. CI/CD İş Akışlarında Terraform
  2. `plan` ve `apply` İşlemlerini Otomatikleştirme
  3. Kimlik Bilgilerini Güvenli Yönetme
  4. GitOps ve Çekme İsteği Otomasyonu
← Terraform Infrastructure as Code Sayfasına Dön