View a markdown version of this page

Azure フェデレーションロール - AWS Systems Manager

Azure フェデレーションロール

Azure フェデレーションロールを使用すると、Systems Manager は AWS Security Token Service (AWS STS) からウェブ ID トークンを取得し、OIDC フェデレーションを通じて Azure 認証情報と交換できます。Automation は、ランブックの実行中にこのロールを引き受けて Azure テナントを認証します。Systems Manager サービスもこのロールを直接引き受けて、State Manager 関連付けが存在する前に Cloud Connector を検証します。

ロール名のパターン:SSM-AzureRole-connector-name-id8

信頼ポリシーには、2 つのステートメントが含まれています。

  • 最初のステートメントでは、呼び出し元のプリンシパルがオートメーション継承ロールまたはオートメーションディスパッチロール (aws:PrincipalArn 条件と一致) であり、そのプリンシパルが caller=SSM でタグ付けされている場合にのみ、顧客の AWS アカウント が ロールを引き受けます。principal-ARN 一致では、継承ロールとディスパッチロールが IAM /service-role/ パスの下に存在する必要があります。

  • 2 番目のステートメントでは、Systems Manager サービスプリンシパルがロールを直接引き受けることができます。条件 aws:SourceAccount および aws:SourceArn は、混乱した代理問題への対策として、AWS アカウント と Cloud Connector ARN への信頼を制限します。

123456789012 を AWS アカウント ID に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Condition": { "StringEquals": { "aws:PrincipalTag/caller": "SSM" }, "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::123456789012:role/service-role/SSM-AzureAssumeRole*", "arn:aws:iam::123456789012:role/service-role/SSM-AzureDispatchRole*" ] } } }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "Service": "ssm.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:ssm:*:123456789012:connector/*" } } } ] }

アクセス許可ポリシーにより、そのロールは、対象者が api://AzureADTokenExchange に制限されたウェブ ID トークンを取得できます。これは、Microsoft Entra ID で OIDC フェデレーションに対して必要となる対象者です。

アクセス許可の詳細

このポリシーには、以下のアクセス許可が含まれています。

  • sts:GetWebIdentityToken – そのロールで AWS STS からウェブ ID トークンを取得できるようになり、Systems Manager はこのトークンを Microsoft Entra ID に提示して Azure の認証情報と交換できます。

  • sts:TagGetWebIdentityToken – Systems Manager が、発行されたウェブ ID トークンに ID タグ (コネクタ ID など) を追加できるようになります。これにより、Microsoft Entra ID フェデレーションルールを特定の Cloud Connector にスコープできます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:GetWebIdentityToken", "sts:TagGetWebIdentityToken" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "sts:IdentityTokenAudience": [ "api://AzureADTokenExchange" ] } } } ] }