AWS - Federation Abuse
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: 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" } } } ] }
OIDCプロバイダーをEKSクラスターで生成することは、クラスターのOIDC URLを新しいOpen IDアイデンティティプロバイダーとして設定することで可能です。これは一般的なデフォルトポリシーです:
このポリシーは、id 20C159CDF6F2349B68846BEC03BE031B
を持つ EKS クラスター のみがロールを引き受けることができることを正しく示しています。しかし、どのサービスアカウントがそれを引き受けることができるかは示されていないため、ウェブアイデンティティトークンを持つ任意のサービスアカウント がロールを 引き受けることができる ことを意味します。
どのサービスアカウントがロールを引き受けることができるべきかを指定するためには、 サービスアカウント名が指定される条件 を指定する必要があります。例えば:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)