Compare commits

...

13 Commits

Author SHA1 Message Date
Tom Keller 2748f18272 chore(docs): document immutable OIDC subject claim
GitHub made the OIDC `sub` claim immutable for repositories created on
github.com on or after 2026-04-23 (and older repos that opt in). The claim
now appends the numeric org and repository IDs after each name, separated by
`@`, e.g. `repo:org@123456/repo@789012:ref:refs/heads/main`.

Closes #1888.
2026-07-15 10:48:06 -07:00
GitHub Actions e977f476bf chore: Update dist 2026-07-14 03:59:59 +00:00
dependabot[bot] ab0d61f6a0 chore(deps): bump @aws-sdk/client-sts from 3.1080.0 to 3.1086.0 (#1880)
Bumps [@aws-sdk/client-sts](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sts) from 3.1080.0 to 3.1086.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sts/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-sts)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-sts"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 03:59:28 +00:00
GitHub Actions ccf493e3b1 chore: Update dist 2026-07-14 03:56:32 +00:00
dependabot[bot] 05ed620dc8 chore(deps-dev): bump @aws-sdk/credential-provider-env (#1886)
Bumps [@aws-sdk/credential-provider-env](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages-internal/credential-provider-env) from 3.972.54 to 3.972.57.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages-internal/credential-provider-env/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/HEAD/packages-internal/credential-provider-env)

---
updated-dependencies:
- dependency-name: "@aws-sdk/credential-provider-env"
  dependency-version: 3.972.57
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 03:56:05 +00:00
dependabot[bot] 62f98f6930 chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 (#1882)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3 to 7.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/commits)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 03:54:45 +00:00
dependabot[bot] 5a780d06ff chore(deps-dev): bump @smithy/property-provider from 4.4.6 to 4.4.8 (#1884)
Bumps [@smithy/property-provider](https://github.com/smithy-lang/smithy-typescript/tree/HEAD/packages/property-provider) from 4.4.6 to 4.4.8.
- [Release notes](https://github.com/smithy-lang/smithy-typescript/releases)
- [Changelog](https://github.com/smithy-lang/smithy-typescript/blob/main/packages/property-provider/CHANGELOG.md)
- [Commits](https://github.com/smithy-lang/smithy-typescript/commits/@smithy/property-provider@4.4.8/packages/property-provider)

---
updated-dependencies:
- dependency-name: "@smithy/property-provider"
  dependency-version: 4.4.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 03:53:16 +00:00
dependabot[bot] d3cb30b08b chore(deps-dev): bump @biomejs/biome from 2.5.2 to 2.5.3 (#1885)
Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 2.5.2 to 2.5.3.
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.3/packages/@biomejs/biome)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-version: 2.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 03:51:27 +00:00
dependabot[bot] eb48debd38 chore(deps-dev): bump @types/node from 26.1.0 to 26.1.1 (#1881)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 26.1.0 to 26.1.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 26.1.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 03:48:33 +00:00
dependabot[bot] e69af16b6c chore(deps-dev): bump memfs from 4.58.0 to 4.64.0 (#1883)
Bumps [memfs](https://github.com/streamich/memfs) from 4.58.0 to 4.64.0.
- [Release notes](https://github.com/streamich/memfs/releases)
- [Changelog](https://github.com/streamich/memfs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/streamich/memfs/compare/v4.58.0...v4.64.0)

---
updated-dependencies:
- dependency-name: memfs
  dependency-version: 4.64.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 03:46:28 +00:00
GitHub Actions 7fb20f0656 chore: Update dist 2026-07-14 03:44:06 +00:00
dependabot[bot] 4e7ae70130 chore(deps): bump @smithy/node-http-handler from 4.9.3 to 4.9.5 (#1879)
Bumps [@smithy/node-http-handler](https://github.com/smithy-lang/smithy-typescript/tree/HEAD/packages/node-http-handler) from 4.9.3 to 4.9.5.
- [Release notes](https://github.com/smithy-lang/smithy-typescript/releases)
- [Changelog](https://github.com/smithy-lang/smithy-typescript/blob/main/packages/node-http-handler/CHANGELOG.md)
- [Commits](https://github.com/smithy-lang/smithy-typescript/commits/@smithy/node-http-handler@4.9.5/packages/node-http-handler)

---
updated-dependencies:
- dependency-name: "@smithy/node-http-handler"
  dependency-version: 4.9.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 03:43:32 +00:00
Tom Keller 9ae780b171 fix: attach git credentials before Tag Major Version push (#1877)
The Tag Major Version step ran 'git push origin' after Checkout Again
re-cloned with persist-credentials: false, leaving the remote without
credentials. This caused 'fatal: could not read Username' (exit 128) on
the first release. Set the authenticated remote URL using OSDS_ACCESS_TOKEN
before pushing tags, mirroring the Update README step.
2026-07-09 13:46:15 -07:00
6 changed files with 2192 additions and 1957 deletions
+2
View File
@@ -55,6 +55,8 @@
run: | run: |
git config user.name "GitHub Actions" git config user.name "GitHub Actions"
git config user.email "github-aws-sdk-osds-automation@amazon.com" git config user.email "github-aws-sdk-osds-automation@amazon.com"
echo "::add-mask::${{ env.OSDS_ACCESS_TOKEN }}"
git remote set-url origin https://${{ env.OSDS_ACCESS_TOKEN }}@github.com/aws-actions/configure-aws-credentials.git
if git rev-parse "v${{ steps.release.outputs.major }}" >/dev/null 2>&1; then if git rev-parse "v${{ steps.release.outputs.major }}" >/dev/null 2>&1; then
git tag -d "v${{ steps.release.outputs.major }}" git tag -d "v${{ steps.release.outputs.major }}"
git push origin ":v${{ steps.release.outputs.major }}" git push origin ":v${{ steps.release.outputs.major }}"
+35 -7
View File
@@ -26,7 +26,7 @@ Authenticate to AWS in GitHub Actions (and others)! Works especially well with
"Condition": { "Condition": {
"StringEquals": { "StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com", "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
"token.actions.githubusercontent.com:sub": "repo:<GITHUB_ORG>/<GITHUB_REPOSITORY>:ref:refs/heads/<GITHUB_BRANCH>" "token.actions.githubusercontent.com:sub": "repo:<GITHUB_ORG>@<ORG_ID>/<GITHUB_REPOSITORY>@<REPO_ID>:ref:refs/heads/<GITHUB_BRANCH>"
} }
} }
} }
@@ -36,11 +36,16 @@ Authenticate to AWS in GitHub Actions (and others)! Works especially well with
</details> </details>
Note: if you are running in a GitHub environment based workflow, the value Note: The value of the `sub` claim may be different depending on the workflow
for the Sub claim will be different, in the form of and the environment in which it's running. Workflows in repositories created
`repo:<GITHUB_ORG>/<GITHUB_REPOSITORY>:environment:<ENVIRONMENT_NAME>`. prior to [15 July 2026][immutable-sub] will omit the `@<ORG_ID>` and
Adjust the trust policy accordingly if you are using environment-based `@<REPO_ID>` suffixes unless opted in. Workflows running in GitHub
workflows. environments will include an`environment:<ENVIRONMENT_NAME>` stanza. See
[Claims and scoping permissions](#claims-and-scoping-permissions) for more
information.
[immutable-sub]:
https://github.blog/changelog/2026-04-23-immutable-subject-claims-for-github-actions-oidc-tokens/
3. Attach permissions to the IAM Role that allow it to access the AWS resources 3. Attach permissions to the IAM Role that allow it to access the AWS resources
you need. you need.
@@ -593,6 +598,29 @@ claims ([1][gh-blog-oidc], [2][sub-claim-custom]).
> unintended access. Instead, use `StringEquals` or `StringLike` operators to > unintended access. Instead, use `StringEquals` or `StringLike` operators to
> check for specific claim values. > check for specific claim values.
#### Immutable subject claims
Repositories created on github.com on or after 15 July 2026, and older
repositories that have opted in, emit an [immutable `sub` claim][immutable-sub].
This claim appends the permanent numeric ID of the organization and of the
repository after each name, separated by `@`, so that a recycled org or
repository name cannot be used to mint tokens matching a stale trust policy.
For example:
```text
# Legacy (mutable) sub claim
repo:octo-org/octo-repo:ref:refs/heads/main
# Immutable sub claim
repo:octo-org@123456/octo-repo@789012:ref:refs/heads/main
```
If your trust policy matches the legacy name-only form and your repository emits
the immutable claim, `AssumeRoleWithWebIdentity` fails with `Not authorized to
perform sts:AssumeRoleWithWebIdentity`. To fix this, update the `sub` condition
to the immutable form. You can find your repository's prefix in the Settings,
or by following the token inspection steps below.
[least-privilege]: [least-privilege]:
https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege
[gh-blog-oidc]: [gh-blog-oidc]:
@@ -605,7 +633,7 @@ claims ([1][gh-blog-oidc], [2][sub-claim-custom]).
If you aren't sure what claim values your workflow is producing, the If you aren't sure what claim values your workflow is producing, the
[`actions-oidc-debugger`](https://github.com/github/actions-oidc-debugger) [`actions-oidc-debugger`](https://github.com/github/actions-oidc-debugger)
action will print the decoded JWT payload. Run it in a private repository action will print the decoded JWT payload. Run it in a private repository
only the token itself is short-lived but the claim values may be sensitive. only; the token itself is short-lived but the claim values may be sensitive.
See the GitHub [security-hardening guide][gh-oidc-hardening] for further See the GitHub [security-hardening guide][gh-oidc-hardening] for further
discussion of trust conditions and threat modeling. discussion of trust conditions and threat modeling.
+21 -21
View File
@@ -222,7 +222,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The following npm package may be included in this product: The following npm package may be included in this product:
- @aws-sdk/client-sts@3.1080.0 - @aws-sdk/client-sts@3.1086.0
This package contains the following license: This package contains the following license:
@@ -432,9 +432,9 @@ Apache License
The following npm packages may be included in this product: The following npm packages may be included in this product:
- @aws-sdk/signature-v4-multi-region@3.996.38 - @aws-sdk/signature-v4-multi-region@3.996.39
- @smithy/core@3.29.1 - @smithy/core@3.29.3
- @smithy/types@4.15.1 - @smithy/types@4.16.1
These packages each contain the following license: These packages each contain the following license:
@@ -832,7 +832,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The following npm package may be included in this product: The following npm package may be included in this product:
- @aws-sdk/core@3.974.28 - @aws-sdk/core@3.975.1
This package contains the following license: This package contains the following license:
@@ -1042,16 +1042,16 @@ Apache License
The following npm packages may be included in this product: The following npm packages may be included in this product:
- @aws-sdk/credential-provider-env@3.972.54 - @aws-sdk/credential-provider-env@3.972.57
- @aws-sdk/credential-provider-ini@3.972.61 - @aws-sdk/credential-provider-ini@3.973.1
- @aws-sdk/credential-provider-node@3.972.63 - @aws-sdk/credential-provider-node@3.972.67
- @aws-sdk/token-providers@3.1080.0 - @aws-sdk/token-providers@3.1083.0
- @aws-sdk/types@3.973.15 - @aws-sdk/types@3.974.0
- @aws-sdk/xml-builder@3.972.33 - @aws-sdk/xml-builder@3.972.34
- @smithy/credential-provider-imds@4.4.6 - @smithy/credential-provider-imds@4.4.8
- @smithy/fetch-http-handler@5.6.3 - @smithy/fetch-http-handler@5.6.5
- @smithy/node-http-handler@4.9.3 - @smithy/node-http-handler@4.9.5
- @smithy/signature-v4@5.6.2 - @smithy/signature-v4@5.6.4
These packages each contain the following license: These packages each contain the following license:
@@ -1261,9 +1261,9 @@ Apache License
The following npm packages may be included in this product: The following npm packages may be included in this product:
- @aws-sdk/credential-provider-process@3.972.54 - @aws-sdk/credential-provider-process@3.972.57
- @aws-sdk/credential-provider-sso@3.972.60 - @aws-sdk/credential-provider-sso@3.973.1
- @aws-sdk/credential-provider-web-identity@3.972.60 - @aws-sdk/credential-provider-web-identity@3.972.63
These packages each contain the following license: These packages each contain the following license:
@@ -1473,9 +1473,9 @@ Apache License
The following npm packages may be included in this product: The following npm packages may be included in this product:
- @aws-sdk/credential-provider-http@3.972.56 - @aws-sdk/credential-provider-http@3.972.59
- @aws-sdk/credential-provider-login@3.972.60 - @aws-sdk/credential-provider-login@3.972.63
- @aws-sdk/nested-clients@3.997.28 - @aws-sdk/nested-clients@3.997.31
These packages each contain the following license: These packages each contain the following license:
Generated Vendored
+1503 -1660
View File
File diff suppressed because it is too large Load Diff
+623 -261
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -17,25 +17,25 @@
"organization": true "organization": true
}, },
"devDependencies": { "devDependencies": {
"@aws-sdk/credential-provider-env": "^3.972.49", "@aws-sdk/credential-provider-env": "^3.972.57",
"@biomejs/biome": "2.5.2", "@biomejs/biome": "2.5.3",
"@smithy/property-provider": "^4.4.6", "@smithy/property-provider": "^4.4.8",
"@types/node": "^26.1.0", "@types/node": "^26.1.1",
"@vitest/coverage-v8": "4.1.10", "@vitest/coverage-v8": "4.1.10",
"aws-sdk-client-mock": "^4.1.0", "aws-sdk-client-mock": "^4.1.0",
"esbuild": "^0.28.1", "esbuild": "^0.28.1",
"generate-license-file": "^4.2.1", "generate-license-file": "^4.2.1",
"json-schema": "^0.4.0", "json-schema": "^0.4.0",
"markdownlint-cli": "^0.49.0", "markdownlint-cli": "^0.49.0",
"memfs": "^4.58.0", "memfs": "^4.64.0",
"standard-version": "^9.5.0", "standard-version": "^9.5.0",
"typescript": "^6.0.3", "typescript": "^7.0.2",
"vitest": "4.1.10" "vitest": "4.1.10"
}, },
"dependencies": { "dependencies": {
"@actions/core": "^3.0.1", "@actions/core": "^3.0.1",
"@aws-sdk/client-sts": "^3.1080.0", "@aws-sdk/client-sts": "^3.1086.0",
"@smithy/node-http-handler": "^4.9.1", "@smithy/node-http-handler": "^4.9.5",
"proxy-agent": "^8.0.2" "proxy-agent": "^8.0.2"
}, },
"keywords": [ "keywords": [