翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-TroubleshootIAMAccessDeniedEvents
説明
AWSSupport-TroubleshootIAMAccessDeniedEvents オートメーションランブックは、 AWS Identity and Access Management (IAM) アクセス拒否問題のトラブルシューティングに役立ちます。ランブックは、指定された IAM エンティティと AWS サービスイベントソースに関連する最近のアクセス拒否イベントを CloudTrail にクエリします。最大 24 時間の設定可能な時間枠内でイベントを分析し、実行ごとに最大 10 個のイベントを処理します。識別された各アクセス拒否イベントは、拒否のコンテキストと試行されたアクションを理解するのに役立ちます。自動化は、アイデンティティベースの IAM ポリシーとリソースベースの IAM ポリシーの両方を分析します。ID ベースのポリシーでは、IAM エンティティにアタッチされたインラインポリシーとマネージドポリシーを調べます。リソースベースのポリシーでは、Amazon Simple Storage Service (Amazon S3)、 AWS Key Management Service (AWS KMS)、Amazon Simple Notification Service (Amazon SNS) AWS Lambda、Amazon Elastic Container Registry (Amazon ECR)、Amazon API Gateway、CodeArtifact、Amazon Elastic File System (Amazon EFS)、Amazon Simple Queue Service (Amazon SQS) AWS Cloud9、Amazon OpenSearch Service、 AWS Signer AWS Serverless Application Repository、および AWS を含む複数のサービスにわたってポリシーを評価します AWS Secrets Manager。
ランブックは IAM ポリシーシミュレーション機能を使用して、CloudTrail イベントで見つかった拒否されたアクションに対してこれらのポリシーを評価します。ランブックは、IAM ユーザー向けの SimulatePrincipalPolicy と IAM ロール向けの SimulateCustomPolicy の両方を通じて IAM のポリシーシミュレーション機能を活用して、CloudTrail イベントで見つかった拒否されたアクションに対してこれらのポリシーを評価します。自動化は、拒否された特定のアクションを識別し、暗黙的な拒否と明示的な拒否を区別し、アクセス拒否を担当するポリシーを一覧表示し、各拒否の説明を提供するのに役立つレポートを出力します。このレポートは、欠落している許可ステートメントや競合する拒否ステートメントの特定など、潜在的な解決策も提案します。
動作の仕組み
ランブックは次のステップを実行します。
-
(
RequesterARN
ロールまたはユーザー) を記述して検証し、IAM エンティティタイプや IAM ID などの情報を取得します。 -
指定された
ResourceARN
場合は、RequesterARN
、、EventSource
および に関連付けられた CloudTrail イベントを取得します。 -
CloudTrail イベントを分析して、アクセス拒否エラーが返されたときに実行されたアクションを取得し、IAM エンティティにアタッチされたインラインポリシーやマネージドポリシー、リソースベースのポリシーなど、すべての IAM ポリシーを調べます。次に、問題の CloudTrail イベントからのアクセス拒否エラーで見つかったアクションに対してこれらのポリシーをシミュレートして、エラーの原因を特定します。
-
アクセス拒否エラーのタイプ、エラーの原因となっているポリシーを決定するレポートを出力し、エラーに対する潜在的な解決策を提案します。
ドキュメントタイプ
Automation
[所有者]
Amazon
[Platforms] (プラットフォーム)
/
必要な IAM アクセス許可
AutomationAssumeRole
パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
apigateway:GetRestApis
cloudtrail:LookupEvents
cloud9:GetEnvironment
codeartifact:GetRepositoryPermissionsPolicy
ecr:GetRepositoryPolicy
elasticfilesystem:GetFileSystemPolicy
es:DescribeDomain
iam:GetPolicy
iam:GetPolicyVersion
iam:GetRole
iam:GetRolePolicy
iam:GetUser
iam:GetUserPolicy
iam:ListAttachedRolePolicies
iam:ListAttachedUserPolicies
iam:ListRolePolicies
iam:ListUserPolicies
iam:SimulatePrincipalPolicy
iam:SimulateCustomPolicy
kms:GetKeyPolicy
lambda:GetPolicy
secretsmanager:GetResourcePolicy
serverlessrepo:GetApplication
signer:GetSigningProfile
sns:GetTopicAttributes
ssm:StartAutomationExecution
ssm:StopAutomationExecution
sqs:GetQueueAttributes
s3:GetBucketPolicy
ポリシーの例:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:GetUser", "iam:GetRole", "iam:SimulatePrincipalPolicy", "iam:ListUserPolicies", "iam:ListRolePolicies", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:GetPolicy", "iam:GetUserPolicy", "iam:GetPolicyVersion", "iam:ListAttachedUserPolicies", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution", "cloudtrail:LookupEvents", "iam:SimulateCustomPolicy" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:GetBucketPolicy", "kms:GetKeyPolicy", "lambda:GetPolicy", "sns:GetTopicAttributes", "ecr:GetRepositoryPolicy", "apigateway:GET", "codeartifact:GetRepositoryPermissionsPolicy", "elasticfilesystem:GetFileSystemPolicy", "sqs:GetQueueAttributes", "cloud9:GetEnvironment", "es:DescribeDomain", "signer:GetSigningProfile", "serverlessrepo:GetApplication", "secretsmanager:GetResourcePolicy" ], "Resource": "*", "Effect": "Allow" } ] }
指示
次の手順に従って自動化を設定します。
-
ドキュメントの Systems Manager
AWSSupport-TroubleshootIAMAccessDeniedEvents
で に移動します。 -
[Execute automation] (オートメーションを実行) を選択します。
-
入力パラメータには、次のように入力します。
-
AutomationAssumeRole(オプション):
説明: (オプション) SSM Automation がユーザーに代わってアクションを実行できるようにする AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。Kubernetes API コールを許可するには、ロールを Amazon EKS クラスターアクセスエントリまたは RBAC アクセス許可に追加する必要があります。
型:
AWS::IAM::Role::Arn
-
RequesterARN (必須):
説明: (必須) 特定の AWS リソースに対するアクセス許可を調査する IAM ユーザーまたはロールの ARN。
タイプ: 文字列
許可パターン:
^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$
-
ResourceARN (オプション):
説明: (オプション) アクセス拒否が評価される AWS リソースの ARN。 AWS ターゲットリソースは、オートメーションランブックが実行されるのと同じリージョンに存在する必要があります。
タイプ: 文字列
許可パターン:
^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):([a-zA-Z0-9\\-]{1,63}):([a-z0-9\\-]{0,63})?:(\\d{12})?:([a-zA-Z0-9\\-_/:.]{1,1024})$
-
EventSource (必須):
説明: (必須) CloudTrail イベントが発生した Amazon API エンドポイント。例:
s3.amazonaws.com
。タイプ: 文字列
許可パターン:
^([a-zA-Z0-9.-]+)\\.amazonaws\\.com$
-
EventName (オプション):
説明: (オプション) CloudTrail イベントに関連付けられた Amazon API アクション名。例:
s3:CreateBucket
。タイプ: 文字列
許可パターン:
^$|^[a-z0-9]+:[A-Za-z0-9]+$
-
LookBackHours (オプション):
説明: (オプション) イベントを検索するときに CloudTrail
Access Denied
イベントをさかのぼる時間数。有効な範囲:1
~24
時間。タイプ: 整数
許可パターン:
^([1-9]|1[0-9]|2[0-4])$
デフォルト: 12
-
MaxEvents (オプション):
説明: (オプション)
Access Denied
イベントの検索時に返される CloudTrail イベントの最大数。有効範囲:1
~5
イベント。タイプ: 整数
許可パターン:
^([1-9]|1[0-9]|2[0-4])$
デフォルト: 3
-
UseContextEntries (オプション):
説明: (オプション) を指定すると
true
、オートメーションは CloudTrail イベントから API リクエストのコンテキストに関する詳細を抽出し、IAM ポリシーシミュレーションに含めます。型: ブール値
許可パターン:
^([1-9]|1[0-9]|2[0-4])$
デフォルト: 3
-
-
[実行] を選択します。
-
自動化が開始されます。
-
ドキュメントは以下のステップを実行します。
-
ValidateRequesterArn
RequesterArn
ARN を検証および分解し、ターゲット IAM ユーザーまたはロールに関する情報を取得します。 -
GetCloudTrailEventsWithAccessDeniedError
指定された IAM エンティティと AWS サービスに関連する最近のイベントの CloudTrail
Access Denied
イベントをクエリしますEventSource
。 -
EvaluateIAMRequesterPolicies
CloudTrail イベントからのアクションに対してリクエスタ IAM エンティティの IAM アクセス許可を評価します。この評価には、リクエスタに関連付けられたアイデンティティベースのポリシーとリソースベースのポリシーの両方の分析が含まれます。自動化では、IAM のポリシーシミュレーション機能を使用して、CloudTrail イベントで特定された拒否されたアクションのコンテキストでこれらのポリシーを評価します。
-
-
完了したら、出力セクションで実行の詳細な結果を確認します。
-
PermissionEvaluationResults
暗黙的な拒否と明示的な拒否を区別して、拒否された特定のアクションを識別するのに役立つレポートを出力します。また、アクセス拒否を担当するポリシーを一覧表示し、各拒否の説明を提供します。このレポートは、欠落している許可ステートメントや競合する拒否ステートメントの特定など、潜在的な解決策も提案します。
-
リファレンス
Systems Manager Automation