IAM Policy'yi Admin Yapıp Geçmek
Sonra hiç gelmedi

Pipeline bir AccessDenied ile durdu. Saat ilerliyordu. Policy'ye AdministratorAccess bağladım, yeşil oldu. Yorum olarak 'TODO: daralt' düştüm. Üç sprint sonra TODO duruyordu. Erişim de duruyordu.
Yıldızın kaldığı yer
Admin policy, uygulamanın ihtiyacı değil, benim sabırsızlığım. Uygulama S3'e nesne yazıyor, kuyruğa mesaj basıyor, secret okuyor. Disk silmiyor, IAM kullanıcısı açmıyor, başka hesabın bucket'ına bakmıyor. Yıldız, bu ayrımı yok sayıyor.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "TooWide",
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
Bunu 'geçici' diye commit'lemek, geçiciyi kalıcı yapan en kısa yol. CloudTrail'de yıldızın kullanıldığı yerleri sonra toplamaya çalışmak, baştan dar yazmaktan pahalı. Access Analyzer ve IAM Access Advisor işe yarıyor; ama onlar, yıldızı üretimin ilk gününden bağladıysanız geçmişi temizlemez.
Daraltmayı PR'a bağlamak
Şimdi resource ile birlikte policy de geliyor. S3 yazma ayrı, okuma ayrı. Resource ARN'si bucket + prefix. * sadece o servisin o eylem ailesinde, o da isteksiz.
data "aws_iam_policy_document" "app" {
statement {
sid = "ReadUploads"
actions = ["s3:GetObject"]
resources = ["${aws_s3_bucket.uploads.arn}/app/*"]
}
statement {
sid = "WriteUploads"
actions = ["s3:PutObject"]
resources = ["${aws_s3_bucket.uploads.arn}/app/*"]
}
}
resource "aws_iam_role_policy" "app" {
name = "app-s3"
role = aws_iam_role.app.id
policy = data.aws_iam_policy_document.app.json
}
Deploy rolü ayrı. Uygulama rolü migrate etmez, kullanıcı silmez. Pipeline rolü apply eder, günlük trafiği taşımaz. İkisini aynı role yığmak, yıldızın ikinci hali: 'hepsi bir yerde dursun'.
Reddetme
PR'da Action = "*" veya AWS yönetilen Admin policy görünce duruyorum. 'Sonra daraltırız' yorumunu kabul etmiyorum. Sonra, bu işte, gelmiyor. Yeşil pipeline, açık kapıdan ucuz değil.
Least privilege bir manifesto değil. Apply ile aynı anda duran bir JSON. JSON genişse, iş bitmemiş sayıyorum.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap