Amazon GuardDuty
Amazon Guard Duty ユーザーガイド

Amazon GuardDuty へのアクセスの管理

GuardDuty の有効化に必要なアクセス許可

このセクションでは、コンソールまたはプログラム (GuardDuty API または AWS CLI の GuardDuty コマンド) から GuardDuty を最初に有効にするために必要な IAM アイデンティティ (ユーザー、グループ、ロール) 別のアクセス許可について説明します。

GuardDuty を有効にするために必要なアクセス許可を付与するには、次のポリシーを IAM ユーザー、グループ、またはロールにアタッチします。

注記

以下の例のサンプルのアカウント ID を実際の AWS アカウント ID に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "guardduty:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::123456789012:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty", "Condition": { "StringLike": { "iam:AWSServiceName": "guardduty.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "arn:aws:iam::1234567890123:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty" } ] }

サービスにリンクされたロールによる GuardDuty へのアクセス許可の委任

このセクションでは、GuardDuty サービス自体が動作するためと、ユーザーの代わりにオペレーション (結果の生成など) を実行するために必要なアクセス許可について説明します。

GuardDuty コンソールまたはプログラム (API オペレーションまたは AWS CLI コマンド) を使用して GuardDuty を有効にすると、AWSServiceRoleForAmazonGuardDuty というサービスにリンクされたロールが自動的に割り当てられます。サービスにリンクされたロールは、AWS のサービス (この場合は GuardDuty) に直接リンクされた一意なタイプの IAM ロールです。サービスにリンクされたロールは、サービスによって事前に定義され、ユーザーに代わってサービスが AWS の他のサービスを呼び出すために必要なアクセス権限をすべて含んでいます。このリンクされたサービス (この場合は GuardDuty) でも、サービスにリンクされたロールを作成、変更、削除する方法を定義します。サービスにリンクされたロールの詳細については、「サービスにリンクされたロールの使用」を参照してください。

GuardDuty を有効にすると、サービスにリンクされたロールとしてAWSServiceRoleForAmazonGuardDuty が自動的に作成されます。これには、AWS CloudTrail、VPC フローログ、および DNS ログのイベントを GuardDuty で直接使用および分析し、セキュリティの結果を生成するために必要なアクセス許可と信頼ポリシーが含まれています。

サービスにリンクされたロール AWSServiceRoleForAmazonGuardDuty を編集することはできません。IAM コンソールで、このサービスにリンクされたロールのアクセス権限を表示したり、このロール自体を削除したりできます。サービスにリンクされたロール AWSServiceRoleForAmazonGuardDuty を削除するには、まずその AWS アカウントのすべてのリージョンで GuardDuty を無効にしておく必要があります。

AWSServiceRoleForAmazonGuardDuty にアタッチされたアクセス許可を表示するには、GuardDuty コンソールの [Setting/General] タブで [View service role permissions] ボタンを選択します。

サービスにリンクされたロール AWSServiceRoleForAmazonGuardDuty にアタッチされているアクセス権限ポリシードキュメントは次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages" ], "Resource": "*" } ] }

サービスにリンクされたロール AWSServiceRoleForAmazonGuardDuty にアタッチされている信頼ポリシーは次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

IAM ポリシーを使用して GuardDuty へのアクセス権を IAM アイデンティティに委任する

このセクションでは、GuardDuty へのアクセス権をさまざまな IAM アイデンティティ (ユーザー、グループ、ロール) に委任する方法について説明します。

デフォルトでは、GuardDuty リソース (ディテクター、信頼された IP リスト、脅威リスト、結果、メンバー、マスターアカウント、および呼び出し) へのアクセスは、リソースが作成された AWS アカウントの所有者に限定されます。所有者の場合は、GuardDuty へのフルアクセスまたは制限付きのアクセス権をアカウントのさまざまな IAM アイデンティティに付与できます。IAM アクセスポリシーの作成の詳細については、「AWS Identity and Access Management (IAM)」を参照してください。

GuardDuty での AWS 管理 (事前定義) ポリシー

AWS は、AWS によって作成され管理されるスタンドアロンの IAM ポリシーが提供する多くの一般的ユースケースに対応します。これらの管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与することで、どの権限が必要なのかをユーザーが調査する必要をなくすことができます。詳細については、IAM ユーザーガイド の「AWS 管理ポリシー」を参照してください。

アカウントのユーザーにアタッチ可能な以下の AWS 管理ポリシーは、GuardDuty に固有のものです。

  • AmazonGuardDutyFullAccess – – は、GuardDuty のすべての機能にアクセスできます。ただし、信頼されている IP リストおよび脅威リストを GuardDuty で操作する場合、ID のアクセスはこの管理ポリシーによって制限されます。具体的には、AmazonGuardDutyFullAccess 管理ポリシーがアタッチされている ID はアップロードされた信頼されている IP リストと脅威リストの名前変更および無効化のみを実行できます。

    さまざまな ID に、信頼されている IP リストと脅威リストの操作 (名前変更および無効化に加えて、リストのアップロード、有効化、削除、場所の更新が含まれます) を行うためのフルアクセスを付与するには、次のアクションが IAM ユーザー、グループ、またはロールにアタッチされたアクセス権ポリシーに存在することを確認してください。

    { "Effect": "Allow", "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "arn:aws:iam::123456789123:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty" }
  • AmazonGuardDutyReadOnlyAccess – – は、GuardDuty への読み取り専用アクセスを提供します。

カスタム IAM ポリシーによる GuardDuty へのフルアクセスの付与

以下のカスタムポリシーを使用して、IAM ユーザー、ロール、またはグループに GuardDuty コンソールと GuardDuty のすべてのオペレーションへのフルアクセスを付与できます。

注記

以下の例のサンプルのアカウント ID を実際の AWS アカウント ID に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "guardduty:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::123456789123:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty", "Condition": { "StringLike": { "iam:AWSServiceName": "guardduty.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "arn:aws:iam::123456789123:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty" } ] }

カスタム IAM ポリシーによる GuardDuty への読み取り専用アクセスの付与

次のポリシーを使用して、IAM ユーザー、ロール、またはグループに GuardDuty への読み取り専用アクセス権を付与できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "guardduty:ListMembers", "guardduty:GetMembers", "guardduty:ListInvitations", "guardduty:ListDetectors", "guardduty:GetDetector", "guardduty:ListFindings", "guardduty:GetFindings", "guardduty:ListIPSets", "guardduty:GetIPSet", "guardduty:ListThreatIntelSets", "guardduty:GetThreatIntelSet", "guardduty:GetMasterAccount", "guardduty:GetInvitationsCount", "guardduty:GetFindingsStatistics" ], "Resource": "*" } ] }

カスタム IAM ポリシーによる GuardDuty の結果へのアクセスの拒否

次のポリシーを使用し、IAM ユーザー、ロール、またはグループに対して、GuardDuty の結果へのアクセスを拒否できます。ユーザーは結果やその詳細は表示できませんが、その他すべての GuardDuty のオペレーションにはアクセスできます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "guardduty:CreateDetector", "guardduty:DeleteDetector", "guardduty:UpdateDetector", "guardduty:GetDetector", "guardduty:ListDetectors", "guardduty:CreateIPSet", "guardduty:DeleteIPSet", "guardduty:UpdateIPSet", "guardduty:GetIPSet", "guardduty:ListIPSets", "guardduty:CreateThreatIntelSet", "guardduty:DeleteThreatIntelSet", "guardduty:UpdateThreatIntelSet", "guardduty:GetThreatIntelSet", "guardduty:ListThreatIntelSets", "guardduty:ArchiveFindings", "guardduty:UnarchiveFindings", "guardduty:CreateSampleFindings", "guardduty:CreateMembers", "guardduty:InviteMembers", "guardduty:GetMembers", "guardduty:DeleteMembers", "guardduty:DisassociateMembers", "guardduty:StartMonitoringMembers", "guardduty:StopMonitoringMembers", "guardduty:ListMembers", "guardduty:GetMasterAccount", "guardduty:DisassociateFromMasterAccount", "guardduty:AcceptInvitation", "guardduty:ListInvitations", "guardduty:GetInvitationsCount", "guardduty:DeclineInvitations", "guardduty:DeleteInvitations" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::123456789123:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty", "Condition": { "StringLike": { "iam:AWSServiceName": "guardduty.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "arn:aws:iam::123456789123:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty" } ] }

カスタム IAM ポリシーによる GuardDuty のリソースへのアクセスの制限

ディテクター ID に基づいて GuardDuty に対するユーザーのアクセスを定義するには、次のオペレーションを除くすべての GuardDutyオペレーションをカスタム IAM ポリシー内で使用できます。

  • guardduty:CreateDetector

  • guardduty:DeclineInvitations

  • guardduty:DeleteInvitations

  • guardduty:GetInvitationsCount

  • guardduty:ListDetectors

  • guardduty:ListInvitations

IAM ポリシーの以下のオペレーションを使用し、IPSet ID および ThreatIntelSet ID に基づいて、GuardDuty に対するユーザーのアクセス権を定義できます。

  • guardduty:DeleteIPSet

  • guardduty:DeleteThreatIntelSet

  • guardduty:GetIPSet

  • guardduty:GetThreatIntelSet

  • guardduty:UpdateIPSet

  • guardduty:UpdateThreatIntelSet

以下の例では、前述のオペレーションのいくつかを使用してポリシーを作成する方法を示します。

  • このポリシーでは、ユーザーは us-east-1 リージョンでディテクター ID として 1234567 を使用し、guardduty:UpdateDetector オペレーションを実行できます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "guardduty:UpdateDetector", ], "Resource": "arn:aws:guardduty:us-east-1:012345678910:detector/1234567" } ] }
  • このポリシーでは、ユーザーは us-east-1 リージョンでディテクター ID として 1234567、IPSet ID として 000000 を使用し、guardduty:UpdateIPSet オペレーションを実行できます。

    注記

    GuardDuty の信頼された IP のリストと脅威リストにアクセスするために必要なアクセス許可がそのユーザーにあることを確認します。詳細については、「信頼されている IP リストと脅威リストをアップロードするために必要なアクセス権限」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "guardduty:UpdateIPSet", ], "Resource": "arn:aws:guardduty:us-east-1:012345678910:detector/1234567/ipset/000000" } ] }
  • このポリシーでは、ユーザーは us-east-1 リージョンで任意のディテクター ID と、IPSet ID として 000000 を使用し、guardduty:UpdateIPSet オペレーションを実行できます。

    注記

    GuardDuty の信頼された IP のリストと脅威リストにアクセスするために必要なアクセス許可がそのユーザーにあることを確認します。詳細については、「信頼されている IP リストと脅威リストをアップロードするために必要なアクセス権限」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "guardduty:UpdateIPSet", ], "Resource": "arn:aws:guardduty:us-east-1:012345678910:detector/*/ipset/000000" } ] }
  • このポリシーでは、ユーザーは us-east-1 リージョンでディテクター ID として 1234567 と任意の IPSet ID を使用し、guardduty:UpdateIPSet オペレーションを実行できます。

    注記

    GuardDuty の信頼された IP のリストと脅威リストにアクセスするために必要なアクセス許可がそのユーザーにあることを確認します。詳細については、「信頼されている IP リストと脅威リストをアップロードするために必要なアクセス権限」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "guardduty:UpdateIPSet", ], "Resource": "arn:aws:guardduty:us-east-1:012345678910:detector/1234567/ipset/*" } ] }

GuardDuty で定義したリソース

リソースタイプ ARN
detector arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}
ipset arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/ipset/${IPSetId}
threatintelset arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/threatintelset/${ThreatIntelSetId}
filter arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/filter/${FilterName}