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

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

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

デフォルトでは、IAM ユーザーおよびロールには、AWS Health リソースを作成または変更するアクセス許可はありません。また、AWS Management Console や AWS CLI、AWS API を使用してタスクを実行することもできません。IAM 管理者は、ユーザーとロールに必要な、指定されたリソースで特定の API オペレーションを実行する許可をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらの許可が必要な IAM ユーザーまたはグループにそのポリシーを添付します。

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

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

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

  • AWS マネージドポリシーの使用を開始する — AWS Healthの使用をすばやく開始するには、AWS マネージドポリシーを使用して、従業員に必要なアクセス許可を付与します。これらのポリシーはアカウントですでに有効になっており、AWS によって管理および更新されています 詳細については、「IAM ユーザーガイド」の「AWS マネージドポリシーを使用した許可の使用スタート」を参照してください。

  • 最小特権を付与する - カスタムポリシーを作成するときは、タスクの実行に必要な許可のみを付与します。最小限の許可からスタートし、必要に応じて追加の許可を付与します。この方法は、寛容過ぎる許可から始めて、後から厳しくしようとするよりも安全です。詳細については、「IAM ユーザーガイド」の「最小特権を認める」を参照してください。

  • 機密性の高いオペレーションに MFA を有効にする - 追加セキュリティとして、機密性の高いリソースまたは API オペレーションにアクセスするために IAM ユーザーに対して、多要素認証 (MFA) の使用を要求します。詳細については、「IAM ユーザーガイド」の「AWS での多要素認証 (MFA) の使用」を参照してください。

  • 追加のセキュリティとしてポリシー条件を使用する - 実行可能な範囲内で、アイデンティティベースのポリシーがリソースへのアクセスを許可する条件を定義します。例えば、あるリクエストの送信が許可される IP アドレスの範囲を指定するための条件を記述できます。指定された日付または時間範囲内でのみリクエストを許可する条件を書くことも、SSL や MFA の使用を要求することもできます。詳細については、次を参照してください。IAM JSON ポリシー要素: 条件IAM ユーザーガイド

AWS Health コンソールを使用する

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

これらのエンティティが AWS Health コンソールを使用できるように、次の AWS 管理ポリシー、AWSHealthFullAccess をアタッチします。

AWSHealthFullAccess ポリシーでは、エンティティは次のものへのフルアクセスが付与されます。

  • AWS 組織内のすべてのアカウントに対する AWS Health 組織ビュー機能の有効化または無効化

  • AWS Health コンソール内の AWS Health Dashboard

  • AWS Health API オペレーションと通知

  • AWS 組織の一部であるアカウントに関する情報の表示

  • 管理アカウントの組織単位 (OU) の表示

例 : AWSHealthFullAccess

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:DisableAWSServiceAccess" ], "Resource": "*", "Condition": { "StringEquals": { "organizations:ServicePrincipal": "health.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "health:*", "organizations:DescribeAccount", "organizations:ListAccounts", "organizations:ListDelegatedAdministrators", "organizations:ListParents" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "health.amazonaws.com" } } } ] }
注記

また、AWS 管理ロール、Health_OrganizationsServiceRolePolicy を使用して、AWS Health が組織内の他のアカウントのイベントを表示するようにできます。詳細については、「 のサービスにリンクされたロールの使用AWS Health」を参照してください。

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

詳細については、「IAM ユーザーガイド」の「ユーザーへのアクセス許可の追加」を参照してください。

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

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

AWS Health Dashboard および AWS Health API へのアクセス

AWS Health Dashboard は、すべての AWS アカウントで使用できます。AWS Health API は、ビジネス、エンタープライズオンランプ、またはエンタープライズサポートプランのアカウントでのみ使用できます。詳細については、「AWS Support」を参照してください。

IAM を使用してエンティティ (ユーザー、グループ、またはロール) を作成し、これらのエンティティに対して AWS Health Dashboard と AWS Health API へのアクセス許可を付与できます。

デフォルトでは、IAM ユーザーは AWS Health Dashboard または AWS Health API にアクセスできません。アカウントの AWS Health 情報へのアクセス権をユーザーに付与するには、単一のユーザー、ユーザーグループ、またはロールに対して IAM ポリシーをアタッチします。詳細については、「ID (ユーザー、グループ、ロール)」と「IAM ポリシーの概要」を参照してください。

IAM ユーザーを作成したら、これらのユーザーに個別のパスワードを付与できます。ユーザーは、アカウント固有のサインインページを使用して、アカウントにサインインし、AWS Health の情報を表示できます。詳細については、「ユーザーがアカウントにサインインする方法」を参照してください。

注記

AWS Health Dashboard を表示するアクセス許可を持つ IAM ユーザーには、アカウントのすべての AWS のサービス間でヘルス情報への読み取り専用アクセスが許可されます。これには、Amazon EC2 インスタンス ID などの AWS リソース ID、EC2 インスタンスの IP アドレス、および一般的なセキュリティ通知が含まれる場合がありますが、これらに限りません。

例えば、IAM ポリシーで AWS Health Dashboard および AWS Health API へのアクセスのみが許可される場合、ポリシーが適用されるユーザーまたはロールは、他の IAM ポリシーでそのアクセスを許可していない場合でも、AWS のサービスまたは関連リソースに関して投稿されたすべての情報にアクセスできます。

AWS Health には、2 つの API グループを使用できます。

使用可能な API オペレーションの詳細については、AWS Health API リファレンスを参照してください。

個々のアクション

IAM ポリシーの Action エレメントを health:Describe* に設定できます。これにより、AWS Health Dashboard および AWS Health にアクセスできます。AWS Health は、eventTypeCode およびサービスに基づくイベントへのアクセスコントロールをサポートしています。

アクセスの説明

このポリシーステートメントは AWS Health Dashboard およびすべての Describe* AWS Health API オペレーションへのアクセスを許可します。例えば、このポリシーを持つ IAM ユーザーは、AWS Management Console の AWS Health Dashboard にアクセスし、AWS Health DescribeEvents API オペレーションを呼び出すことができます。

例 : アクセスの説明

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "health:Describe*" ], "Resource": "*" }] }

アクセスを拒否する

次のポリシーステートメントでは、AWS Health Dashboard と AWS Health API へのアクセスを拒否します。このポリシーを持つ IAM ユーザーは、AWS Management Console で AWS Health Dashboard を表示できません。また、AWS Health API オペレーションを呼び出すこともできません。

例 : アクセスを拒否する

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "health:*" ], "Resource": "*" }] }

組織ビュー

AWS Health の組織ビューを有効にする場合は、AWS Health および AWS Organizations アクションへアクセスを許可する必要があります。

IAM ポリシーの Action 要素には、次のアクセス許可を含める必要があります。

  • iam:CreateServiceLinkedRole

  • organizations:EnableAWSServiceAccess

  • organizations:DescribeAccount

  • organizations:DisableAWSServiceAccess

  • organizations:ListAccounts

  • organizations:ListDelegatedAdministrators

  • organizations:ListParents

各 API に必要な正確な権限を確認するには、IAM ユーザーガイドAWS Health APIs and Notifications で定義されるアクションを参照してください。

注記

AWS Organizations の AWS Health API にアクセスするには、組織の管理アカウントの認証情報を使用する必要があります。詳細については、「組織ビューでのアカウント全体の AWS Health イベントの集計」を参照してください。

AWS Health 組織ビューへのアクセス許可

このポリシーステートメントは、組織ビュー機能に必要なすべての AWS Health および AWS Organizations アクションへのアクセスを許可します。

例 : AWS Health 組織ビューへのアクセスを許可する

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:DisableAWSServiceAccess" ], "Resource": "*", "Condition": { "StringEquals": { "organizations:ServicePrincipal": "health.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "health:*", "organizations:DescribeAccount", "organizations:ListAccounts", "organizations:ListDelegatedAdministrators", "organizations:ListParents" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/health.amazonaws.com/AWSServiceRoleForHealth*" } ] }

AWS Health 組織ビューへのアクセス拒否

このポリシーステートメントは、AWS Organizations アクションへのアクセスを拒否しますが、個々のアカウントの AWS Health アクションへのアクセスを許可します。

例 : AWS Health 組織ビューへのアクセスを拒否する

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "health:*" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:DisableAWSServiceAccess" ], "Resource": "*", "Condition": { "StringEquals": { "organizations:ServicePrincipal": "health.amazonaws.com" } } }, { "Effect": "Deny", "Action": [ "organizations:DescribeAccount", "organizations:ListAccounts", "organizations:ListDelegatedAdministrators", "organizations:ListParents" ], "Resource": "*" }, { "Effect": "Deny", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/health.amazonaws.com/AWSServiceRoleForHealth*" } ] }
注記

アクセス許可を付与する先のユーザーまたはグループに IAM ポリシーが既にある場合は、そのポリシーに対して、ここに示した AWS Health 固有のポリシーステートメントを追加できます。

リソースおよびアクションに基づく条件

AWS Health は、 DescribeAffectedEntities および DescribeEventDetails API オペレーションに対する IAM 条件をサポートしています。リソースベースおよびアクションベースの条件を使用して、AWS Health API がユーザー、グループ、またはロールに送信するイベントを制限できます。

これを行うには、IAM ポリシーの Condition ブロックを更新するか、Resource 要素を設定します。文字列条件を使用して、特定の AWS Health イベントフィールドに基づいてアクセスを制限できます。

ポリシーに AWS Health イベントを指定する場合、次のフィールドを使用できます。

  • eventTypeCode

  • service

メモ

例 : アクションベースの条件

このポリシーステートメントは、AWS Health Dashboard および AWS Health Describe* API オペレーションへのアクセスは許可しますが、Amazon EC2 に関連する AWS Health イベントへのアクセスは拒否します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "health:Describe*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "health:DescribeAffectedEntities", "health:DescribeEventDetails" ], "Resource": "*", "Condition": { "StringEquals": { "health:service": "EC2" } } } ] }

例 : リソースベースの条件

次のポリシーでも結果は同じですが、Resource 要素を代わりに使用しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "health:Describe*" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "health:DescribeEventDetails", "health:DescribeAffectedEntities" ], "Resource": "arn:aws:health:*::event/EC2/*/*" }] }

例 : eventTypeCode 調子

このポリシーステートメントは、AWS Health Dashboard および AWS Health Describe* API オペレーションへのアクセスは許可されますが、AWS_EC2_* と一致する eventTypeCode を持つ AWS Health イベントへのアクセスは拒否されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "health:Describe*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "health:DescribeAffectedEntities", "health:DescribeEventDetails" ], "Resource": "*", "Condition": { "StringLike": { "health:eventTypeCode": "AWS_EC2_*" } } } ] }
重要

DescribeAffectedEntities および DescribeEventDetails オペレーションを呼び出して、AWS Health イベントへのアクセス許可がない場合、AccessDeniedException エラーが表示されます。詳細については、「AWS Health アイデンティティとアクセスに関するトラブルシューティング」を参照してください。