CDKTF에서 키 인증 없음
서비스 계정 만들기
const ghActionSa = new ServiceAccount(this, "sa", {
accountId: "my-service-account",
});
IAM Credentials API 유효성
new ProjectService(this, "iamcredentials.googleapis.com", {
service: "iamcredentials.googleapis.com",
disableOnDestroy: false,
})
Workload Identity Pool 만들기
const idPool = new GoogleIamWorkloadIdentityPool(this, "id-pool", {
provider: googleBeta,
workloadIdentityPoolId: "my-pool",
displayName: "Demo pool",
});
구글-beta provider 사용Pool 삭제 후 30일 동안 이름이 같은 Pool을 생성할 수 없습니다.
Pool에서 Workload Identity Provider 작성
new GoogleIamWorkloadIdentityPoolProvider(this, "id-provider", {
provider: googleBeta,
workloadIdentityPoolId: idPool.workloadIdentityPoolId,
workloadIdentityPoolProviderId: "my-provider",
displayName: "Demo provider",
attributeMapping: {
"google.subject": "assertion.sub",
"attribute.actor": "assertion.actor",
"attribute.repository": "assertion.repository",
"attribute.aud": "assertion.aud",
},
oidc: {
issuerUri: "https://token.actions.githubusercontent.com",
},
});
Workload Identity Provider의 인증을 서비스 계정으로 위장
const REPO = "username/repo"
new ServiceAccountIamBinding(this, "bind-workloadidentity", {
role: "roles/iam.workloadIdentityUser",
serviceAccountId: ghActionSa.id,
members: [
`principalSet://iam.googleapis.com/${idPool.name}/attribute.repository/${REPO}`,
],
});
Reference
이 문제에 관하여(CDKTF에서 키 인증 없음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/uta_mory/articles/6bcaa90aa7aabf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)