aws-iam
AIエージェントがよく間違えるIAM動作の検証済み訂正情報です。ポリシー評価の境界ケース、信頼ポリシーの落とし穴、STSセッション制限、Organizations の仕様、SAML/MFA の詳細に対応しています。IAMロール、ポリシー、STS、Organizations を扱う際は、ドキュメントと併せてご活用ください。Cognito ユーザープールポリシーやアプリケーションレベルの RBAC などの IAM 以外の認可には使用しないでください。
description の原文を見る
Verified corrections for IAM behaviors that AI agents frequently get wrong — policy evaluation edge cases, trust policy gotchas, STS session limits, Organizations quirks, and SAML/MFA specifics. Use alongside documentation when working with IAM roles, policies, STS, or Organizations. Do NOT use for non-IAM authorization like Cognito user-pool policies or app-level RBAC.
SKILL.md 本文
AWS IAM — よくある落とし穴
このスキルについて
このスキルは、IAM に関して AI エージェントが頻繁に誤解する部分の検証済み修正を含んでいます。これは包括的な IAM ガイドではなく、完全な IAM ガイダンスについては AWS ドキュメントを検索してください。
IAM に関する質問に答える際は、特定のクレーム(制限、クォータ、正確な API 名、エッジケースの動作)を事前学習に頼らず公式 AWS ドキュメントに照らし合わせて検証してください。広くの検索よりも既知のドキュメント URL を取得することを優先してください。矛盾が生じた場合は、メモリよりも公式ドキュメントを信頼してください。
検証済みエッジケース
CloudTrail:
- AcceptHandshake/DeclineHandshake はアクティブなアカウントのみでログに記録され、管理アカウントには記録されません。集約化には Organization Trail が必要です。
- ConsoleLogin リージョンはエンドポイント/クッキーによって異なり、常に us-east-1 とは限りません。
?region=で特定のリージョンを強制できます。
STS:
- GetSessionToken の制限: (1) MFA を含まない限り IAM API は利用不可 (2) AssumeRole と GetCallerIdentity 以外の STS は利用不可。
- クロスアカウント AssumeRole(オプトイン リージョン): 呼び出し元アカウントではなく、ターゲットアカウントがリージョンを有効化する必要があります。
- ロールチェーン: 最大 1 時間のセッション。
Organizations:
- 一時停止/クローズされたアカウントは永久にクローズされるまで(約 90 日)削除できません。削除してからクローズします。
- ポリシー管理の委譲: register-delegated-administrator ではなく PutResourcePolicy を使用してください。
- AI オプトアウトポリシー: デフォルトでは管理アカウントが必要です。
- ListPolicies フィルタ用の Organizations ポリシータイプ: SERVICE_CONTROL_POLICY、TAG_POLICY、BACKUP_POLICY、AISERVICES_OPT_OUT_POLICY、CHATBOT_POLICY、DECLARATIVE_POLICY_EC2、RESOURCE_CONTROL_POLICY。
SDK の詳細:
- Organizations:
DuplicatePolicyAttachmentException(PolicyAlreadyAttachedException ではない)。 - Boto3 IAM AccessKey: メソッドは
activate()、deactivate()、delete()—update()はなし。 - インスタンスプロファイル: waiter +
time.sleep(10)パターン。 - 管理ポリシー最大バージョン: 5。
SAML:
- 暗号化アサーション URL:
https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID。 - IdP からの秘密鍵を IAM に .pem 形式でアップロード。
ポリシー評価:
- ForAllValues(空/欠落キーの場合): true に評価されます(空真)。これを回避するには、同じコンテキストキー上の ForAllValues と共に
Null条件を使用して、そのキーが存在し null でないことを要求してください。例えば、aws:TagKeysコンテキストキーを評価する場合:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": "*",
"Condition": {
"ForAllValues:StringEquals": {
"aws:TagKeys": ["Alpha", "Beta"]
},
"Null": {
"aws:TagKeys": "false"
}
}
}
}
- リソースベースのポリシーが IAM ユーザー ARN に付与する場合、同一アカウント内の権限境界をバイパスします。
- 直接 IAM ポリシー操作による 8 つの特権昇格アクション: PutGroupPolicy、PutRolePolicy、PutUserPolicy、CreatePolicy、CreatePolicyVersion、AttachGroupPolicy、AttachRolePolicy、AttachUserPolicy。
iam:PassRolewithResource: "*"+ コンピュートサービスの作成/更新(EC2RunInstances、LambdaCreateFunction/UpdateFunctionConfiguration、ECSRegisterTaskDefinition、Glue、SageMaker、CloudFormation など)= アカウント内の任意のパス可能ロール(Administrator を含む)への特権昇格。Resourceを特定のロール ARN または IAM パスにスコープしてください。オプションでiam:PassedToService/iam:AssociatedResourceArnで制限できます。IAM ユーザーガイド — ロールを渡すための権限をユーザーに付与するを参照してください。
MFA:
- 割り当てられていない仮想 MFA デバイスは、新しいデバイスを追加する際に自動削除されます。
- MFA 再同期専用ポリシー NotAction は正確に以下が必要: iam:ListMFADevices、iam:ListVirtualMFADevices、iam:ResyncMFADevice。
SigV4:
- IncompleteSignatureException は Authorization ヘッダーの SHA-256 ハッシュを含み、転送中の変更診断に用いられます。
サービス固有のロール:
- Redshift Serverless の信頼ポリシー: サービスプリンシパルとして
redshift-serverless.amazonaws.comとredshift.amazonaws.comの両方を含める必要があります(AWS ドキュメントに従う; serverless を省略すると COPY でNot authorized to get credentials of roleが発生します)。 - IAM OIDC プロバイダー: ほとんどのプロバイダーではサムプリントが不要になりました(AWS は 2022 年以降、信頼できる CA 経由で検証します)。
ポリシーサマリー表示:
- マルチサービスワイルドカードアクション(例:
codebuild:*、codecommit:*)とサービス固有のリソース ARN を含む単一ステートメント: 各リソースは対応するサービスのサマリーのみに表示されます(CodeBuild ARN は CodeBuild の下、など)。ステートメント内のアクションと一致するサービスプレフィックスを持たないリソースは、すべてのアクションサマリーに表示されます(「リソース不一致」)。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- seandkendall
- ライセンス
- Apache-2.0
- 最終更新
- 2026/5/8
Source: https://github.com/seandkendall/kiro-config / ライセンス: Apache-2.0