Amazon GuardDuty のためのアイデンティティベースのポリシーの例 - Amazon GuardDuty

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

Amazon GuardDuty のためのアイデンティティベースのポリシーの例

デフォルトでは、ユーザーおよびロールには、GuardDuty リソースを作成または変更する許可はありません。また、AWS Management Console、AWS Command Line Interface AWS CLI、または AWS API を使用してタスクを実行することもできません。IAM 管理者は、リソースで必要なアクションを実行するためのアクセス許可をユーザーに付与する IAM ポリシーを作成できます。その後、管理者はロールに IAM ポリシーを追加し、ユーザーはロールを引き受けることができます。

これらサンプルの JSON ポリシードキュメントを使用して、IAM アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイドのIAM ポリシーの作成を参照してください。

GuardDuty が定義するアクションとリソースタイプ (リソースタイプごとの ARN の形式を含む) の詳細については、「サービス認証リファレンス」の「Amazon GuardDuty のアクション、リソース、および条件キー」を参照してください。

ポリシーのベストプラクティス

ID ベースのポリシーは、あるユーザーがアカウント内で GuardDuty リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションを実行すると、AWS アカウント に追加料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください。

  • AWS マネージドポリシーを使用して開始し、最小特権の許可に移行する:ユーザーとワークロードへの許可の付与を開始するには、多くの一般的なユースケースのために許可を付与する AWS マネージドポリシーを使用します。これらは AWS アカウントで使用できます。ユースケースに応じた AWSカスタマーマネージドポリシーを定義することで、許可をさらに減らすことをお勧めします。詳細については、「IAM ユーザーガイド」の「AWS マネージドポリシー」または「AWS ジョブ機能の管理ポリシー」を参照してください。

  • 最小特権を適用する:IAM ポリシーで許可を設定するときは、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、 最小特権アクセス許可 とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、IAM ユーザーガイドIAM でのポリシーとアクセス許可を参照してください。

  • IAM ポリシーで条件を使用してアクセスをさらに制限する:ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定することができます。また、AWS のサービス などの特定の AWS CloudFormationを介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、「IAM ユーザーガイド」の IAM JSON policy elements: Condition (IAM JSON ポリシー要素:条件) を参照してください。

  • IAM Access Analyzer を使用して IAM ポリシーを検証し、安全で機能的な許可を確保する:IAM Access Analyzer は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM Access Analyzer は 100 を超えるポリシーチェックと実用的なリコメンデーションを提供し、安全で機能的なポリシーを作成できるようサポートします。詳細については、「IAM ユーザーガイド」の「IAM Access Analyzer ポリシーの検証」を参照してください。

  • 多要素認証 (MFA) を要求する:AWS アカウント で IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、「IAM ユーザーガイド」の「MFA 保護 API アクセスの設定」を参照してください。

IAM でのベストプラクティスの詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。

GuardDuty コンソールの使用

Amazon GuardDuty コンソールにアクセスするには、最小限の許可セットが必要です。これらの許可により、AWS アカウント の GuardDuty リソースについての詳細をリスト化し、見ることが許可されます。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

AWS CLI または AWSAPI のみを呼び出すユーザーには、最小限のコンソール許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

ユーザーとロールが引き続きGuardDutyコンソールを使用できるようにするには、エンティティに GuardDuty ConsoleAccess または ReadOnly AWS マネージドポリシーもアタッチします。詳細については、「IAM ユーザーガイド」の「ユーザーへの許可の追加」を参照してください。

GuardDuty の有効化に必要な許可

さまざまな IAM ID (ユーザー、グループ、およびロール) に必要な許可を付与するには、必要な AWS マネージドポリシー: AmazonGuardDutyFullAccess ポリシーをアタッチして GuardDuty を有効にします。

ユーザーが自分の許可を表示できるようにする

この例では、ユーザーアイデンティティに添付されたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーを作成する方法を示します。このポリシーには、コンソールで、または AWS CLI または AWS API を使用してプログラムで、このアクションを完了する許可が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

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

GuardDuty への読み取り専用アクセス権を付与するには、AmazonGuardDutyReadOnlyAccess マネージドポリシーが使用できます。

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", "guardduty:DescribeMalwareScans", "guardduty:UpdateMalwareScanSettings", "guardduty:GetMalwareScanSettings" ], "Resource": "*" } ] }

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:AcceptAdministratorInvitation", "guardduty:ListInvitations", "guardduty:GetInvitationsCount", "guardduty:DeclineInvitations", "guardduty:DeleteInvitations" ], "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::123456789012:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty" } ] }

GuardDuty のリソースへのアクセスを制限するためのカスタム IAM ポリシーの使用

ディテクター ID に基づいて GuardDuty に対するユーザーのアクセスを定義するには、次のオペレーションを除くすべての GuardDuty API のアクションをカスタム 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:123456789012: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:123456789012: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:123456789012:detector/*/ipset/000000" } ] }
  • このポリシーでは、us-east-1 リージョンでディテクター ID および任意の IPSet ID を使用し、guardduty:UpdateIPSet オペレーションを実行できます。

    注記

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

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