CDKTF에서 키 인증 없음

7716 단어 cdktftech
CDKTF에서 해보세요 google-github-actions/auth: GitHub Action for authenticating to Google Cloud with GitHub Actions OIDC tokens and Workload Identity Federation.

서비스 계정 만들기


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}`,
    ],
});

좋은 웹페이지 즐겨찾기