AWS - Federation Abuse
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
SAMLに関する情報は以下を確認してください:
SAMLを通じたアイデンティティフェデレーションを構成するには、名前とすべてのSAML構成(エンドポイント、公開鍵を含む証明書)を含むメタデータXMLを提供するだけです。
GitHubアクションをアイデンティティプロバイダーとして追加するには:
_プロバイダータイプ_としてOpenID Connectを選択します。
_プロバイダーURL_にhttps://token.actions.githubusercontent.com
を入力します。
_サムプリントを取得_をクリックしてプロバイダーのサムプリントを取得します。
_オーディエンス_にsts.amazonaws.com
を入力します。
GitHubアクションが必要とする権限を持つ新しいロールを作成し、次のような信頼ポリシーを設定します:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::0123456789:oidc-provider/token.actions.githubusercontent.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "token.actions.githubusercontent.com:sub": [ "repo:ORG_OR_USER_NAME/REPOSITORY:pull_request", "repo:ORG_OR_USER_NAME/REPOSITORY:ref:refs/heads/main" ], "token.actions.githubusercontent.com:aud": "sts.amazonaws.com" } } } ] }
EKS クラスターで OIDC プロバイダー を生成することは、クラスターの OIDC URL を 新しい Open ID アイデンティティプロバイダー として設定するだけで可能です。これは一般的なデフォルトポリシーです:
このポリシーは、id 20C159CDF6F2349B68846BEC03BE031B
を持つ EKS クラスター のみがロールを引き受けることができることを正しく示しています。しかし、どのサービスアカウントがそれを引き受けることができるかは示されていないため、ウェブアイデンティティトークンを持つ任意のサービスアカウント がロールを 引き受けることができる ことを意味します。
どのサービスアカウントがロールを引き受けることができるべきかを指定するためには、 サービスアカウント名が指定される 条件 を指定する必要があります。例えば:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)