Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 30 additions & 9 deletions OIDC_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,23 @@ GitHub ActionsからAWSリソースにアクセスする際、従来のIAMユー
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::007325983811:oidc-provider/token.actions.githubusercontent.com"
"Federated": "arn:aws:iam::<AWSアカウントID>:oidc-provider/token.actions.githubusercontent.com"
},
"Action": "sts:AssumeRole",
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
},
"StringLike": {
"token.actions.githubusercontent.com:sub": "repo:smalruby/smalruby-infra:ref:refs/heads/main"
"token.actions.githubusercontent.com:sub": "repo:smalruby/smalruby-infra:*"
}
}
}
]
}
```

**重要**: `007325983811` は実際のAWSアカウントIDに置き換えてください。
**重要**: `<AWSアカウントID>` は実際のAWSアカウントIDに置き換えてください。

### 2.3 権限ポリシーの追加
デプロイに必要な権限を持つポリシーを添付します:
Expand Down Expand Up @@ -189,9 +189,9 @@ GitHub ActionsからAWSリソースにアクセスする際、従来のIAMユー

| Secret名 | 値 | 説明 |
|----------|---|------|
| `AWS_ROLE_ARN` | `arn:aws:iam::007325983811:role/GitHubActions-smalruby-infra-deploy` | 作成したIAMロールのARN |
| `AWS_ROLE_ARN` | `arn:aws:iam::<AWSアカウントID>:role/GitHubActions-smalruby-infra-deploy` | 作成したIAMロールのARN |

**注意**: `007325983811` は実際のAWSアカウントIDに置き換えてください。
**注意**: `<AWSアカウントID>` は実際のAWSアカウントIDに置き換えてください。

### 3.3 従来のSecretsの削除(推奨)
OIDCが正常に動作することを確認後、以下の従来のSecretsは削除できます:
Expand All @@ -218,14 +218,35 @@ GitHub Actions実行ログで以下を確認:

## トラブルシューティング

### エラー例1: "AssumeRoleFailure"
### エラー例1: "Not authorized to perform sts:AssumeRoleWithWebIdentity"
**原因**: 信頼関係の設定が正しくない
**対処**: ロールの信頼関係でリポジトリ名・ブランチ名を確認
**主な問題**:
- Actionが `sts:AssumeRole` になっている(正:`sts:AssumeRoleWithWebIdentity`)
- 条件が厳しすぎる(推奨:`repo:smalruby/smalruby-infra:*`)
- リポジトリ名・ブランチ名の誤り

**対処法**:
1. IAMロールの信頼関係を確認
2. `"Action": "sts:AssumeRoleWithWebIdentity"` になっているか確認
3. 条件が `"repo:smalruby/smalruby-infra:*"` になっているか確認

**修正方法**:
AWSマネジメントコンソールのIAM → Roles → GitHubActions-smalruby-infra-deploy → Trust relationships タブで信頼関係を編集してください。

### エラー例2: "Access Denied"
**原因**: ロールに必要な権限がない
**対処**: ロールに適切なポリシーが添付されているか確認

### エラー例3: "Invalid identity token"
**原因**: GitHub Actionsの設定が正しくない
**対処**: `permissions`セクションに`id-token: write`があるか確認
**対処**: `permissions`セクションに`id-token: write`があるか確認

### エラー例4: "OIDC Provider not found"
**原因**: OIDC Identity Providerが作成されていない
**対処**: 手順1.2に従ってOIDC Providerを作成

### デバッグ手順
1. **OIDC Provider確認**: AWSマネジメントコンソール → IAM → Identity providers で確認
2. **ロール存在確認**: AWSマネジメントコンソール → IAM → Roles で「GitHubActions-smalruby-infra-deploy」を検索
3. **信頼関係確認**: 該当ロールの Trust relationships タブで設定内容を確認
4. **権限確認**: 該当ロールの Permissions タブで必要なポリシーが添付されているか確認
Loading