IAM 信任策略(示例):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com" }, "StringLike": { "token.actions.githubusercontent.com:sub": "repo:ORG/REPO:*" } } } ] } GitHub Actions 工作流:name: build-and-push on: push: branches: ["main"] permissions: id-token: write contents: read jobs: push: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/GitHubActionsECR aws-region: us-east-1 - uses: aws-actions/amazon-ecr-login@v2 - run: | ACCOUNT=$(aws sts get-caller-identity --query Account --output text) IMAGE="$ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/app" docker build -t "$IMAGE:latest" . docker push "$IMAGE:latest"

发表评论 取消回复