AWS Shield のアイデンティティベースのポリシーの例 - AWS WAF、AWS Firewall Manager、AWS Shield Advanced、および AWS Shield ネットワークセキュリティディレクター

AWS WAF の新しいコンソールエクスペリエンスのご紹介

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「更新されたコンソールエクスペリエンスを使用する」を参照してください。

AWS Shield のアイデンティティベースのポリシーの例

デフォルトでは、ユーザーおよびロールには、Shield リソースを作成または変更するアクセス許可はありません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。

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

Shield が定義するアクションとリソースタイプ (リソースタイプごとの ARN の形式を含む) の詳細については、「Service Authorization Reference」の「Actions, resources, and condition keys for AWS Shield」を参照してください。

ポリシーに関するベストプラクティス

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

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

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

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

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

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

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

Shield コンソールの使用

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

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

AWS コンソールにアクセスして使用できるユーザーは、AWS Shield コンソールにもアクセスできます。追加のアクセス許可は必要ありません。

コンソールのみの API

コンソールでは、次の分散型サービス拒否 (DDoS) 攻撃情報にアクセスできます。特定のアクションを許可または拒否するには、IAM ポリシーで次の API アクセス許可を指定します。

アクション 説明
DescribeAttackContributors

特定の DDoS 攻撃の寄与者に関する詳細情報を取得するアクセス許可を付与します。

ListMitigations

DDoS 攻撃中に適用された緩和アクションのリストを取得するアクセス許可を付与します。

GetGlobalThreatData

AWS Shield の脅威モニタリングシステムからグローバルな脅威インテリジェンスデータと傾向を取得するアクセス許可を付与します。

この例では、コンソールで DDoS 攻撃情報を表示できるようにするポリシーを作成する方法を示します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "shield:DescribeAttackContributors" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "shield:ListMitigations" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "shield:GetGlobalThreatData" ], "Resource": "*" } ] }

自分の権限の表示をユーザーに許可する

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を 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": "*" } ] }

Shield Advanced の保護機能に対する読み取りアクセスの許可

AWS Shield はクロスアカウントリソースアクセスを許可しますが、クロスアカウントリソース保護を作成することはできません。リソースの保護は、それらのリソースを所有するアカウント内からのみ作成できます。

すべてのリソースの shield:ListProtections アクションの許可を付与するポリシーの例を次に示します。Shield は、一部の API アクションについて、リソース ARN (リソースレベルの許可と呼ばれる) を使用した特定のリソースの識別をサポートしていません。そのため、ワイルドカード文字 (*) を指定する必要があります。これは、アクション ListProtections を通して取得できるリソースへのアクセスのみを許可するものです。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ListProtections", "Effect": "Allow", "Action": [ "shield:ListProtections" ], "Resource": "*" } ] }

Shield、CloudFront、CloudWatch に読み取り専用のアクセス権を付与する

次のポリシーでは、Amazon CloudFront リソースや Amazon CloudWatch メトリクスなど、Shield の関連付けられたリソースへの読み取り専用アクセスをユーザーに付与します。これは、Shield 保護と攻撃の設定を表示したり、CloudWatch でメトリクスをモニタリングする許可が必要なユーザーにとって役立ちます。これらのユーザーは、Shield リソースを作成、更新、または削除することはできません。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ProtectedResourcesReadAccess", "Effect": "Allow", "Action": [ "cloudfront:List*", "route53:List*", "cloudfront:Describe*", "elasticloadbalancing:Describe*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "cloudfront:GetDistribution*", "globalaccelerator:ListAccelerators", "globalaccelerator:DescribeAccelerator" ], "Resource": [ "arn:aws:elasticloadbalancing:*:*:*", "arn:aws:cloudfront::*:*", "arn:aws:route53:::hostedzone/*", "arn:aws:cloudwatch:*:*:*:*", "arn:aws:globalaccelerator::*:*" ] }, { "Sid": "ShieldReadOnly", "Effect": "Allow", "Action": [ "shield:List*", "shield:Describe*", "shield:Get*" ], "Resource": "*" } ] }

Shield、CloudFront、CloudWatch へのフルアクセス権を付与する

次のポリシーにより、ユーザーは Shield オペレーションを実行し、CloudFront ウェブディストリビューションで任意のオペレーションを実行して、CloudWatch でメトリクスとリクエストのサンプルをモニタリングできます。これは、Shield の管理者であるユーザーにとって便利です。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ProtectedResourcesReadAccess", "Effect": "Allow", "Action": [ "cloudfront:List*", "route53:List*", "cloudfront:Describe*", "elasticloadbalancing:Describe*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "cloudfront:GetDistribution*", "globalaccelerator:ListAccelerators", "globalaccelerator:DescribeAccelerator" ], "Resource": [ "arn:aws:elasticloadbalancing:*:*:*", "arn:aws:cloudfront::*:*", "arn:aws:route53:::hostedzone/*", "arn:aws:cloudwatch:*:*:*:*", "arn:aws:globalaccelerator::*:*" ] }, { "Sid": "ShieldFullAccess", "Effect": "Allow", "Action": [ "shield:*" ], "Resource": "*" } ] }

管理者許可を持つユーザーに対しては多要素認証 (MFA) を設定することを強くお勧めします。詳細については、「IAM ユーザーガイド」の「AWS での多要素認証 (MFA) デバイスの使用」を参照してください。