Agent Skills by ALSEL
汎用DevOps・インフラ⭐ リポ 0品質スコア 70/100

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:PassRole with Resource: "*" + コンピュートサービスの作成/更新(EC2 RunInstances、Lambda CreateFunction/UpdateFunctionConfiguration、ECS RegisterTaskDefinition、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.comredshift.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
リポジトリ
seandkendall/kiro-config
ライセンス
Apache-2.0
最終更新
2026/5/8

Source: https://github.com/seandkendall/kiro-config / ライセンス: Apache-2.0

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: seandkendall · seandkendall/kiro-config · ライセンス: Apache-2.0