本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
如何搭配 AWS SAM 管道使用 OIDC 身分驗證
AWS Serverless Application Model (AWS SAM) 支援 Bitbucket、GitHub Actions 和 GitLab 持續整合和持續交付 (CI/CD) 平台的 OpenID Connect (OIDC) 使用者身分驗證。透過此支援,您可以使用任何這些平台的授權 CI/CD 使用者帳戶來管理您的無伺服器應用程式管道。否則,您需要建立和管理多個 AWS Identity and Access Management (IAM) 使用者,以控制對 AWS SAM 管道的存取。
使用 AWS SAM 管道設定 OIDC
在sam pipeline bootstrap組態程序期間,執行下列動作以使用 AWS SAM 管道設定 OIDC。
-
當系統提示您選擇身分提供者時,請選取 OIDC。
-
接著,選取支援的 OIDC 供應商。
-
輸入以 開頭的 OIDC 提供者 URL
https://。注意
AWS SAM 會在產生
AWS::IAM::OIDCProvider資源類型時參考此 URL。 -
接著,遵循提示並輸入存取所選平台所需的 CI/CD 平台資訊。這些詳細資訊因平台而異,可能包括:
-
OIDC 用戶端 ID。
-
程式碼儲存庫名稱或全域唯一識別碼 (UUID)。
-
與儲存庫相關聯的群組或組織名稱。
-
程式碼儲存庫所屬的 GitHub 組織。
-
GitHub 儲存庫名稱。
-
部署將從中發生的分支。
-
-
AWS SAM 會顯示輸入的 OIDC 組態摘要。輸入要編輯之設定的號碼,或按 Enter 繼續。
-
當系統提示您確認建立支援輸入的 OIDC 連線所需的資源時,請按 Y 繼續。
AWS SAM 會使用提供的組態產生AWS::IAM::OIDCProvider AWS CloudFormation 資源,以擔任管道執行角色。若要進一步了解此 CloudFormation 資源類型,請參閱AWS CloudFormation 《 使用者指南》中的 AWS::IAM::OIDCProvider。
注意
如果身分提供者 (IdP) 資源已存在於您的 中 AWS 帳戶, AWS SAM 會參考它,而不是建立新的資源。
範例
以下是使用 AWS SAM 管道設定 OIDC 的範例。
Select a permissions provider:
1 - IAM (default)
2 - OpenID Connect (OIDC)
Choice (1, 2): 2
Select an OIDC provider:
1 - GitHub Actions
2 - GitLab
3 - Bitbucket
Choice (1, 2, 3): 1
Enter the URL of the OIDC provider [https://token.actions.githubusercontent.com]:
Enter the OIDC client ID (sometimes called audience) [sts.amazonaws.com]:
Enter the GitHub organization that the code repository belongs to. If there is no organization enter your username instead: my-org
Enter GitHub repository name: testing
Enter the name of the branch that deployments will occur from [main]:
[3] Reference application build resources
Enter the pipeline execution role ARN if you have previously created one, or we will create one for you []:
Enter the CloudFormation execution role ARN if you have previously created one, or we will create one for you []:
Please enter the artifact bucket ARN for your Lambda function. If you do not have a bucket, we will create one for you []:
Does your application contain any IMAGE type Lambda functions? [y/N]:
[4] Summary
Below is the summary of the answers:
1 - Account: 123456
2 - Stage configuration name: dev
3 - Region: us-east-1
4 - OIDC identity provider URL: https://token.actions.githubusercontent.com
5 - OIDC client ID: sts.amazonaws.com
6 - GitHub organization: my-org
7 - GitHub repository: testing
8 - Deployment branch: main
9 - Pipeline execution role: [to be created]
10 - CloudFormation execution role: [to be created]
11 - Artifacts bucket: [to be created]
12 - ECR image repository: [skipped]
Press enter to confirm the values above, or select an item to edit the value:
This will create the following required resources for the 'dev' configuration:
- IAM OIDC Identity Provider
- Pipeline execution role
- CloudFormation execution role
- Artifact bucket
Should we proceed with the creation? [y/N]:
進一步了解
如需搭配 AWS SAM 管道使用 OIDC 的詳細資訊,請參閱sam pipeline bootstrap。