2016-12-09 14 views
7

Yapı işlemi tarafından kullanılmak üzere IAM örnek rolleri vermenin bir yolu var mı? Benim özel durumdaAWS CodeBuild çalışanında IAM rollerini kullanma

I (arşivleme eserler ile ilgili olmayan) inşa sırasında bazı s3 işlemleri gerçekleştirmek gerekir.

Şimdiye kadar bulunan tek alternatif yapılandırma sayfası codebuild çenesinde üzerine ortam değişkenleri bir aws anahtarını ve sırrını eklemektir.

Sadece yapı yürütme EC2 örneği veya kaba bir IAM rol eklemek daha güvenli olacaktır. Şu an (2016-12) mümkün mü?

cevap

6

Yapınızın projesi için oluşturulmuş hizmet rolüne ek politika izinleri eklemek gerekir. CodeBuild, bir oluşturma örneğindeki eylemleri yürütmek için bu süreyi kullanarak oluşturma zamanını kullanır. Eğer inşa sırasında S3 nesne silmek istiyorsa

Örneğin, servis rol politikasına aşağıdaki ifadeyi eklemek gerekir:

{ 
    "Effect": "Allow", 
    "Resource": [ 
     "*" 
    ], 
    "Action": [ 
     "s3:DeleteObject" 
    ] 
} 

Not: Bu kısıtlamak isteyebilirler Belirli kaynaklara yönelik izinler, yukarıdaki örnekte hesabınızdaki herhangi bir konuda DeleteObject'e izin verilir. GetObject ve s3: Eğer kurulum projenize CodeBuild konsolda ilk çalıştırma sihirbazı kullandıysanız

, zaten s3 için servis rolündeki politikaları olmalıdır GetObjectVersion. Konsol aracılığıyla oluştururken hizmet rolünün adı, varsayılan olarak 'codebuild- [proje adı] -service-role' olur.

+0

Hizmet rollerinin yalnızca hizmet kapsayıcısını değil hizmetini etkilediğini düşündüm. Buildspec.yml dosyasına bir s3 komut satırı ekleyerek tekrar deneyeceğim. Belki de benim s3 istemcim kapsayıcı kimlik sağlayıcısını kullanamadı. –

+0

Rolleri işe yaramadı çünkü erişim için kullandığım maven kütüphanesi kapsayıcı kimlik bilgileriyle çalışmadı. Şimdi her şey güzel. –

+0

@DanielSperry tam çözümünüzün ne olduğundan emin değildi, ancak benzer bir sorun yaşadım ve http://stackoverflow.com/questions/42794486/use-appropriate-ecs-credentials-on- codebuild-maven-iş/42799591 # 42799591 – Neil