Я хотел бы импортировать роль в CDK, чтобы использовать ее для настройки нового проекта CodeBuild.
const role1 = Role.import(this, "service-role", {
roleArn: "arn:aws:iam::1234567890:role/service-role/codebuild-manualproject-service-role" ,
});
ПРИМЕЧАНИЕ. Я изменяю учетную запись в Арн для безопасности.
Вот код для создания проекта codebuild ..
// Create build
// note: now that there is one bucket per build project it is not necessary to have a prefix/subdirectory in the bucket for storing cache items
const project = new codebuild.Project(this, CODEBUILD_PROJECT_NAME, {
// render url for build badge
badge: true,
cacheBucket: cacheBucket,
cacheDir: "Cache",
description: "An AWS codebuild project for repo: " + REPO + ", created: " + Date(),
// note will use standard buildspec.yml
// set the environment
environment: {
buildImage: CODEBUILD_IMAGE,
computeType: CODEBUILD_COMPUTETYPE,
},
projectName: CODEBUILD_PROJECT_NAME,
role: role1,
// add in source control
source: source,
// set timeout - mins
timeout: 30,
vpc: vpc,
securityGroups: [securityGroup]
});
Я бегу ..
npm run build
без ошибок
Я тогда бегу
cdk synth
Получил ошибку ..
Error: Validation failed with the following errors:
[Quicktest2Stack/frontend-v3-codebuild/PolicyDocument] Policy must be attached to at least one principal: user, group or role
at Synthesizer.synthesize (C:\scratch\CDKTest\quicktest2\node_modules\@aws-cdk\cdk\lib\synthesis.js:22:23)
at App.run (C:\scratch\CDKTest\quicktest2\node_modules\@aws-cdk\cdk\lib\app.js:44:31)
at process.<anonymous> (C:\scratch\CDKTest\quicktest2\node_modules\@aws-cdk\cdk\lib\app.js:24:51)
at Object.onceWrapper (events.js:284:20)
at process.emit (events.js:196:13)
Subprocess exited with error 1
Так что, если я «импортирую» роль в CDK и попытаюсь связать ее с новым проектом CodeBuild, то она завершится неудачно (cdk synth)
Но если я позволю CDK создать свою собственную роль при создании нового проекта CodeBuild, тогда cdk synth работает и стек может быть развернут, НО проект codebuild завершается неудачей.
Если я возьму проект CodeBuild и просто вручную поменяю роль на начальную, которую я пытался импортировать, - тогда все работает хорошо, и сборка будет работать.
Мне нужно иметь возможность создать проект CodeBuild и привязать к роли в через CDK.
CDK VERSION: 0.28.0
С благодарностью получена любая помощь.