AWSSupport-TroubleshootSAMLIssues - AWS Systems Manager オートメーションランブックリファレンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWSSupport-TroubleshootSAMLIssues

説明

AWSSupport-TroubleshootSAMLIssues オートメーションランブックは、Amazon Simple Storage Service (Amazon S3) に保存されている SAML レスポンスファイルを分析することで、Security Assertion Markup Language (SAML) 関連の問題を診断するのに役立ちます。スキーマ検証、署名検証、対象者制限チェック、有効期限検証などの包括的な検証を実行します。ランブックは、発行者、アサーション、件名、条件、署名、属性などの主要な SAML 要素を SAML レスポンスからデコードして抽出します。SAML を使用して IAM ID プロバイダー経由で AWS リソース (Amazon Connect や Amazon WorkSpaces アプリケーションなど) にアクセスする環境では、SAML レスポンス署名の証明書が IAM ID プロバイダーで設定された証明書と一致するかどうかを確認します。

動作の仕組み

ランブックは次のステップを実行します。

  • SAML レスポンス形式と必要な要素を検証します。

  • SAML レスポンスコンポーネント (発行者、アサーション、サブジェクト、条件、署名、属性) をデコードして抽出します。

  • 提供されている場合、IAM ID プロバイダー証明書と照らし合わせてデジタル署名を検証します。

  • 対象者の制限と時間の有効性を確認します。

  • 解析された SAML 構造と検証結果を示す詳細な診断情報を提供します。

このオートメーションを実行する (コンソール)

ドキュメントタイプ

オートメーション

[所有者]

Amazon

[Platforms] (プラットフォーム)

/

必要な IAM アクセス許可

AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。

  • s3:GetBucketLocation

  • s3:ListBucket

  • s3:GetBucketPublicAccessBlock

  • s3:GetAccountPublicAccessBlock

  • s3:GetObject

  • s3:GetBucketPolicyStatus

  • s3:GetEncryptionConfiguration

  • s3:GetBucketOwnershipControls

  • s3:GetBucketAcl

  • s3:GetBucketPolicy

  • s3:PutObject

  • iam:GetSAMLProvider

  • sts:AssumeRole

ポリシーの例:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:GetBucketPublicAccessBlock", "s3:GetAccountPublicAccessBlock", "s3:GetObject", "s3:GetBucketPolicyStatus", "s3:GetEncryptionConfiguration", "s3:GetBucketOwnershipControls", "s3:GetBucketAcl", "s3:GetBucketPolicy", "s3:PutObject", "iam:GetSAMLProvider", "sts:AssumeRole" ], "Resource": "*", "Effect": "Allow" } ] }

指示

次の手順に従って自動化を設定します。

  1. このランブックを使用する前に、Base64-encodedされた SAML レスポンス (txt ファイル) をキャプチャして S3 バケットに保存する必要があります。SAML レスポンスをキャプチャする手順については、このドキュメントを参照してください。

  2. ドキュメントの Systems Manager AWSSupport-TroubleshootSAMLIssuesで に移動します。

  3. [Execute automation] (オートメーションを実行) を選択します。

  4. 入力パラメータには、次のように入力します。

    • AutomationAssumeRole(オプション):

      • 説明: (オプション) SSM Automation が AWS Identity and Access Management ユーザーに代わってアクションを実行できるようにする (IAM) ロールの Amazon リソースネーム (ARN)。ロールを指定しない場合、Systems Manager Automation はこのランブックを開始するユーザーのアクセス許可を使用します。

      • 型: AWS::IAM::Role::Arn

    • InputFileS3URI (必須):

      • 説明: (必須) SAML Response txt ファイルの Amazon Simple Storage Service (Amazon S3) URI (例: s3://bucket-name/path/to/file.txt)。

      • タイプ: 文字列

      • 許可パターン: ^s3://[a-z0-9][a-z0-9.-][a-z0-9](/.)?$

    • S3OutputPrefix (オプション):

      • 説明: (オプション) 分析出力ファイルは、runbook>.json の「saml_analysis_<executionID」という名前で入力バケットに保存されます。特定のプレフィックスを持つファイルを出力する場合は、このパラメータを使用できます。デフォルト値は「output/」です。この場合、結果を出力するファイル URI は runbook>.json の「s3://bucket-name/output/saml_analysis_<executionID」になります。

      • タイプ: 文字列

      • 許可パターン: ^[a-zA-Z0-9+=,.@\\-_/]*/$

    • ExpectedAudience (オプション):

      • 説明: (オプション) SAML レスポンスで予想される対象者の値。指定しない場合、 が使用されますurn:amazon:webservices。IdP と SP のセットアップで特定のオーディエンス値を設定している場合は、正確な形式 (例: 、https://signin.aws.amazon.com/saml) urn:amazon:webservicesを指定してください。

      • タイプ: 文字列

      • デフォルト: urn:amazon:webservices

    • IamIdProviderArn (オプション):

      • 説明: (オプション) IAM ID プロバイダーエンティティを使用して IdP を IAM AWS に直接リンクする場合は、その ARN (例: arn:aws:iam::<account-id>:saml-provider/<provider-name>) を指定してください。

      • タイプ: 文字列

      • 許可パターン: ^$|^arn:aws:iam::[0-9]{12}:saml-provider/[a-zA-Z0-9_-]+$

    • SAMLAuthenticationTime (オプション):

      • 説明: (オプション) SAML 認証が実行された日時。タイムゾーンは UTC である必要があります。YYYY-MM-DDThh:mm:ss 形式である必要があります (例: 2025-02-01T10:00:00)。このパラメータが指定されていない場合、有効期限チェックは現在のタイムスタンプに対して実行されます。

      • タイプ: 文字列

      • 許可パターン: ^$|^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$

    • S3BucketOwnerRoleArn (オプション):

      • 説明: (オプション) Amazon S3 バケットにアクセスするための IAM ロール ARN。Amazon S3 バケットとアカウントブロックパブリックアクセス設定、バケット暗号化設定、バケット ACLs、バケットポリシーステータスを取得し、バケットにオブジェクトをアップロードするアクセス許可を持つ IAM ロールの ARN。このパラメータが指定されていない場合、ランブックはAutomationAssumeRole」 (指定されている場合) またはこのランブックを開始するユーザーを使用します (AutomationAssumeRole」が指定されていない場合)。

      • 型: AWS::IAM::Role::Arn

  5. [実行] を選択します。

  6. 自動化が開始されます。

  7. ドキュメントは以下のステップを実行します。

    • ValidateIAMIDProvider

      提供された IAM ID プロバイダー ARN が存在するかどうか、アクセス可能かどうかをチェックして検証します。ARN が指定されていない場合、検証はスキップされ、ステップは正常に完了します。

    • CheckS3BucketPublicStatus

      Amazon S3 バケットで匿名またはパブリックの読み取り/書き込みアクセス許可が許可されているかどうかを確認します。バケットでこれらのアクセス許可が許可されている場合、オートメーションはこのステップで停止します。

    • CheckS3ObjectExistence

      Amazon S3 バケットへのアクセスを検証します。バケットとオブジェクトが存在するかどうか、およびオートメーションに送信元からの読み取りと送信先への書き込みに必要なアクセス許可があるかどうかを確認します。

    • AnalyzeSAMLResponse

      チェック (スキーマ検証、署名検証、対象者検証、有効期限チェック) を実行して SAML レスポンスファイルを分析します。詳細な JSON レポートを生成し、指定された Amazon S3 の場所に保存します。

  8. 完了したら、出力セクションで実行の詳細な結果を確認します。

    • Outputs セクションには、分析結果が記述される Amazon S3 オブジェクトに関する情報が含まれています。

  9. 分析結果の Amazon S3 オブジェクトは、次の情報を含む Json ファイルです。

    • validation_result: SAML レスポンスの基本的な検証結果が含まれます。

      • saml_info: 発行者、署名、アサーションなどの主要な SAML 情報。

      • schema_validation: SAML スキーマ検証の結果。

    • verification_result: より詳細な診断結果を提供します。

      • signature: 署名検証の結果。

      • audience: オーディエンス制限の検証結果。

      • expiration: 有効期限の検証結果。

リファレンス

Systems Manager Automation