CloudWatch ダッシュボードの共有 - Amazon CloudWatch

CloudWatch ダッシュボードの共有

CloudWatch ダッシュボードは、AWS アカウントに直接アクセスできないユーザーと共有できます。これにより、チーム間ではもちろん、利害関係者や組織以外の相手ともダッシュボードを共有できます。チームエリアの大画面にダッシュボードを表示したり、Wiki やその他のウェブページに組み込んだりすることもできます。

警告

ダッシュボードを共有するすべてのユーザーに対し、アカウントの ダッシュボードを共有しているユーザーに付与されるアクセス許可 に一覧表示されているアクセス許可が付与されます。ダッシュボードをパブリックに共有する場合は、ダッシュボードへのリンクを持つすべてのユーザーに対し、これらの許可を付与することになります。

cloudwatch:GetMetricData および ec2:DescribeTags アクセス許可は、特定のメトリクスまたは EC2 インスタンスに対しスコープダウンすることはできません。つまり、ダッシュボードへのアクセス権を持つユーザーは、アカウント内のすべての CloudWatch メトリクス、およびすべての EC2 インスタンスの名前とタグに対してクエリできます。

ダッシュボードを共有する場合、ダッシュボードを表示できるユーザーを 3 つの方法で指定できます。

  • 1 つのダッシュボードを共有し、ダッシュボードを表示できるユーザーに与えられた E メールアドレスを 5 つまで指定できます。これらのユーザーはそれぞれ独自のパスワードを作成し、ダッシュボードを表示するときにそのパスワードを入力する必要があります。

  • 1 つのダッシュボードをパブリックに共有し、リンクを持っている全員がダッシュボードを表示できるようにします。

  • アカウントのすべての CloudWatch ダッシュボードを共有し、ダッシュボードアクセス用のサードパーティーのシングルサインオン (SSO) プロバイダーを指定します。この SSO プロバイダー一覧のメンバーであるすべてのユーザーは、アカウントのすべてのダッシュボードにアクセスできます。これを有効にするには、SSO プロバイダーを Amazon Cognito と統合します。SSO プロバイダーは、Security Assertion Markup Language (SAML) をサポートしている必要があります。Amazon Cognito の詳細については、「Amazon Cognito とは」を参照してください。

ダッシュボードを共有しても料金は発生しませんが、共有ダッシュボード内のウィジェットには標準の CloudWatch 料金がかかります。CloudWatch の料金の詳細については、Amazon CloudWatch の料金をご覧ください。

ダッシュボードを共有すると、Amazon Cognito リソースが米国東部 (バージニア北部) リージョンに作成されます。

重要

ダッシュボード共有プロセスで作成されたリソースの名前と識別子は変更しないでください。これには、Amazon Cognito と IAM のリソースが含まれます。これらのリソースを変更すると、共有ダッシュボードが予期せず正しく機能しなくなる可能性があります。

注記

アラーム注釈付きのメトリクスウィジェットを持つダッシュボードを共有する場合、ダッシュボードを共有するユーザーにはこれらのウィジェットは表示されません。代わりに、ウィジェットを利用できないことを示すテキストを含む空白のウィジェットが表示されます。ダッシュボードを自分で表示すると、アラーム注釈付きのメトリクスウィジェットが表示されます。

ダッシュボードを共有するために必要な許可

以下のいずれかの方法を使用してダッシュボードを共有したり、どのダッシュボードが共有済みであるかを確認したりするには、ユーザーとしてサインオンするか、特定のアクセス許可のある IAM ロールが必要です。

ダッシュボードを共有できるようにするには、ユーザーまたは IAM ロールに、以下のポリシーステートメント内のアクションを含める必要があります。

{ "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/service-role/CWDBSharing*", "arn:aws:iam::*:policy/*" ] }, { "Effect": "Allow", "Action": [ "cognito-idp:*", "cognito-identity:*", ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:GetDashboard", ], "Resource": [ "*" // or the ARNs of dashboards that you want to share ] }

共有されているダッシュボードを確認できるものの、ダッシュボードを共有できないようにするには、ユーザーまたは IAM ロールに以下のポリシーステートメントを含めることができます。

{ "Effect": "Allow", "Action": [ "cognito-idp:*", "cognito-identity:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:ListDashboards", ], "Resource": [ "*" ] }

ダッシュボードを共有しているユーザーに付与されるアクセス許可

ダッシュボードを共有すると、対象のアカウントに CloudWatch が IAM ロールを作成します。このロールにより、ダッシュボードを共有するユーザーに次のアクセス許可が付与されます。

  • cloudwatch:GetInsightRuleReport

  • cloudwatch:GetMetricData

  • cloudwatch:DescribeAlarms

  • ec2:DescribeTags

警告

ダッシュボードを共有するすべてのユーザーに対し、アカウントに対するこれらのアクセス許可が付与されます。ダッシュボードをパブリックに共有する場合は、ダッシュボードへのリンクを持つすべてのユーザーに対し、これらの許可を付与することになります。

cloudwatch:GetMetricData および ec2:DescribeTags アクセス許可は、特定のメトリクスまたは EC2 インスタンスに対しスコープダウンすることはできません。つまり、ダッシュボードへのアクセス権を持つユーザーは、アカウント内のすべての CloudWatch メトリクス、およびすべての EC2 インスタンスの名前とタグに対してクエリできます。

ダッシュボードを共有する場合、デフォルトでは、CloudWatch が作成するアクセス許可によって、ダッシュボードが共有されるときにダッシュボードにあるアラームおよび Contributor Insights ルールのみへのアクセスが制限されます。新しいアラームまたは Contributor Insights ルールをダッシュボードに追加し、ダッシュボードを共有したユーザーにも表示する場合は、これらのリソースを許可するようにポリシーを更新する必要があります。

特定のユーザーとの 1 つのダッシュボードの共有

選択した最大 5 つの E メールアドレスとダッシュボードを共有するには、このセクションのステップに従います。

注記

デフォルトでは、ダッシュボード上の CloudWatch Logs ウィジェットは、ダッシュボードを共有しているユーザーには表示されません。詳細については、「共有しているユーザーが、ログテーブルウィジェットを表示できるようにする」を参照してください。

デフォルトでは、ダッシュボード上の複合アラームウィジェットは、ダッシュボードを共有しているユーザーには表示されません。詳細については、「共有しているユーザーが複合アラームを表示できるよう許可する」を参照してください。

特定のユーザーとダッシュボードを共有するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、ダッシュボードを選択します。

  3. ダッシュボードの名前を選択します。

  4. [Actions (アクション)]、[Share dashboard (ダッシュボードの共有)] の順に選択します。

  5. [Share your dashboard and require a username and password (ダッシュボードを共有し、ユーザー名とパスワードを要求する)] の横にある [Start sharing (共有を開始)] を選択します。

  6. [Add email addresses (E メールアドレスの追加)] で、ダッシュボードを共有する E メールアドレスを入力します。最大 5 つの E メールアドレスを含めることができます。

  7. すべての E メールアドレスを入力したら、契約書を読み、確認ボックスを選択します。次に [Preview policy] (ポリシーのプレビュー) を選択します。

  8. 共有するリソースが必要なものであることを確認し、[Confirm and generate shareable link] (共有可能なリンクを確認して生成する) を選択します。

  9. 次のページで、[Copy link to clipboard (リンクをクリップボードにコピー)] を選択します。その後、このリンクを E メールに貼り付けて、招待ユーザーに送信できます。ダッシュボードへの接続に使用するユーザー名と一時パスワードが記載された個別の E メールが、それらのユーザーに自動的に送信されます。

1 つのダッシュボードのパブリック共有

ダッシュボードをパブリックに共有するには、このセクションのステップに従います。これは、ダッシュボードをチームルームの大画面に表示したり、Wiki ページに埋め込んだりする場合に便利です。

重要

ダッシュボードをパブリックに共有すると、リンクを持つすべてのユーザーが認証なしでダッシュボードにアクセスできるようになります。これは、機密情報が含まれていないダッシュボードに対してのみ行ってください。

注記

デフォルトでは、ダッシュボード上の CloudWatch Logs ウィジェットは、ダッシュボードを共有しているユーザーには表示されません。詳細については、「共有しているユーザーが、ログテーブルウィジェットを表示できるようにする」を参照してください。

デフォルトでは、ダッシュボード上の複合アラームウィジェットは、ダッシュボードを共有しているユーザーには表示されません。詳細については、「共有しているユーザーが複合アラームを表示できるよう許可する」を参照してください。

ダッシュボードをパブリックに共有するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、ダッシュボードを選択します。

  3. ダッシュボードの名前を選択します。

  4. [Actions (アクション)]、[Share dashboard (ダッシュボードの共有)] の順に選択します。

  5. [Share your dashboard publicly (ダッシュボードをパブリックに共有)] の横にある [Start sharing (共有を開始)] を選択します。

  6. テキストボックスに「Confirm」と入力します。

  7. 契約書を読み、確認ボックスを選択します。次に [Preview policy] (ポリシーのプレビュー) を選択します。

  8. 共有するリソースが必要なものであることを確認し、[Confirm and generate shareable link] (共有可能なリンクを確認して生成する) を選択します。

  9. 次のページで、[Copy link to clipboard (リンクをクリップボードにコピー)] を選択します。その後、このリンクを共有できます。リンクを共有するユーザーは、資格情報を入力せずにダッシュボードにアクセスできます。

SSO を使用してアカウント内のすべての CloudWatch ダッシュボードを共有する

シングルサインオン (SSO) を使用してアカウント内のすべてのダッシュボードをユーザーと共有するには、このセクションのステップを使用します。

注記

デフォルトでは、ダッシュボード上の CloudWatch Logs ウィジェットは、ダッシュボードを共有しているユーザーには表示されません。詳細については、「共有しているユーザーが、ログテーブルウィジェットを表示できるようにする」を参照してください。

デフォルトでは、ダッシュボード上の複合アラームウィジェットは、ダッシュボードを共有しているユーザーには表示されません。詳細については、「共有しているユーザーが複合アラームを表示できるよう許可する」を参照してください。

SSO プロバイダーのリストに含まれているユーザーと CloudWatch ダッシュボードを共有するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、ダッシュボードを選択します。

  3. ダッシュボードの名前を選択します。

  4. [Actions (アクション)]、[Share dashboard (ダッシュボードの共有)] の順に選択します。

  5. [Go to CloudWatch Settings (CloudWatch 設定に移動)] を選択します。

  6. 目的の SSO プロバイダーが [Available SSO providers (使用可能な SSO プロバイダー)] に含まれていない場合、[Manage SSO providers (SSO プロバイダーの管理)] を選択し、「CloudWatch ダッシュボード共有用の SSO を設定する」の手順に従います。

    次に、CloudWatch コンソールに戻り、ブラウザを更新します。有効にした SSO プロバイダーがリストに表示されます。

  7. [Available SSO providers (使用可能な SSO プロバイダー)] リストで、目的の SSO プロバイダーを選択します。

  8. [Save changes] (変更の保存) をクリックします。

CloudWatch ダッシュボード共有用の SSO を設定する

SAML をサポートするサードパーティーのシングルサインオンプロバイダーを使用してダッシュボード共有を設定するには、次のステップを実行します。

重要

非 SAML SSO プロバイダーを使用してダッシュボードを共有しないことを強くお勧めします。この方法で共有すると、誤ってサードパーティーがアカウントのダッシュボードにアクセスできるようになるリスクがあります。

ダッシュボード共有を有効にするために SSO プロバイダーを設定するには
  1. SSO プロバイダーを Amazon Cognito と統合します。詳細については、「サードパーティーの SAML ID プロバイダーと Amazon Cognito ユーザープールの統合」を参照してください。

  2. SSO プロバイダからメタデータ XML ファイルをダウンロードします。

  3. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  4. ナビゲーションペインで [設定] を選択します。

  5. [Dashboard sharing (ダッシュボード共有)] セクションで、[Configure (設定)] を選択します。

  6. [Manage SSO providers (SSO プロバイダーの管理)] を選択します。

    これにより、Amazon Cognito コンソールが米国東部 (バージニア北部) リージョン (us-east-1) で開きます。ユーザープールが何も表示されない場合は、Amazon Cognito コンソールが別のリージョンで開かれている可能性があります。その場合は、リージョンを米国東部 (バージニア北部) us-east-1 に変更し、次の手順に進みます。

  7. [CloudWatchDashboardSharing] プールを選択します。

  8. ナビゲーションペインで、[Identity providers (ID プロバイダー)] を選択します。

  9. SAML を選択します。

  10. [Provider name (プロバイダー名)] に SSO プロバイダーの名前を入力します。

  11. [Select file (ファイルの選択)] を選択し、ステップ 1 でダウンロードしたメタデータ XML ファイルを選択します。

  12. [プロバイダーの作成] を選択します。

共有されているダッシュボードの数を確認する

CloudWatch コンソールを使用して、現在他のユーザーと共有されている CloudWatch ダッシュボードの数を確認できます。

共有されているダッシュボードの数を確認するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで [設定] を選択します。

  3. [Dashboard sharing] (ダッシュボードの共有) セクションには、共有されているダッシュボードの数が表示されます。

  4. 共有されているダッシュボードを確認するには、[Username and password] (ユーザー名とパスワード) および [Public dashboards] (パブリックダッシュボード) の [number dashboards shared] (共有されているダッシュボードの数) を選択します。

どのダッシュボードが共有されているかを確認する

CloudWatch コンソールを使用して、現在他のユーザーと共有されているダッシュボードを確認できます。

共有されているダッシュボードを確認するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、ダッシュボードを選択します。

  3. ダッシュボードのリストで、[共有] 列を確認します。この列にアイコンが入力されているダッシュボードは、現在共有されています。

  4. ダッシュボードを共有しているユーザーを確認するには、ダッシュボード名を選択し、[アクション]、[ダッシュボードの共有] の順に選択します。

    共有ダッシュボードのダッシュボード名ページには、ダッシュボードの共有方法が表示されます。必要に応じて、[共有の停止] を選択して、ダッシュボードの共有を停止できます。

1 つ以上のダッシュボードの共有を停止する

単一の共有ダッシュボードの共有を停止することも、すべての共有ダッシュボードの共有を一度に停止することもできます。

1 つのダッシュボードの共有を停止するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、ダッシュボードを選択します。

  3. 共有ダッシュボードの名前を選択します。

  4. [Actions (アクション)]、[Share dashboard (ダッシュボードの共有)] の順に選択します。

  5. [共有の停止] を選択します。

  6. 確認ボックスで、[共有の停止] を選択します。

すべての共有ダッシュボードの共有を停止するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで [設定] を選択します。

  3. [Dashboard sharing] (ダッシュボードの共有) セクションで、[Stop sharing all dashboards] (すべてのダッシュボードの共有を停止) を選択します。

  4. 確認ボックスで、[Stop sharing all dashboards] (すべてのダッシュボードの共有の停止) を選択します。

共有ダッシュボードの許可を確認し、許可の範囲を変更する

共有ダッシュボードでのユーザーのアクセス許可を確認する場合、または共有ダッシュボードのアクセス許可の範囲を変更する場合は、このセクションに記載されている手順を使用してください。

共有ダッシュボードの許可を確認するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、ダッシュボードを選択します。

  3. 共有ダッシュボードの名前を選択します。

  4. [Actions (アクション)]、[Share dashboard (ダッシュボードの共有)] の順に選択します。

  5. [Resources (リソース)] で、[IAM Role (IAM ロール)] を選択します。

  6. IAM コンソールで、表示されたポリシーを選択します。

  7. (オプション) 共有ダッシュボードユーザーが表示できるアラームを制限するには、[Edit policy] (ポリシーの編集) を選択し、cloudwatch:DescribeAlarms 許可を現在の位置から共有ダッシュボードのユーザーに表示したいアラームのみの ARN を表示する新しい Allow ステートメントに移動します。次の例を参照してください。

    { "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": [ "AlarmARN1", "AlarmARN2" ] }

    これを行う場合は、現在のポリシーの次のようなセクションから必ず cloudwatch:DescribeAlarms 許可を削除してください。

    { "Effect": "Allow", "Action": [ "cloudwatch:GetInsightRuleReport", "cloudwatch:GetMetricData", "cloudwatch:DescribeAlarms", "ec2:DescribeTags" ], "Resource": "*" }
  8. (オプション) 共有ダッシュボードユーザーが表示できる Contributor Insights ルールの範囲を制限するには、[ポリシーの編集] を選択し、 cloudwatch:GetInsightRuleReport を現在の位置から共有ダッシュボードユーザーに表示したい Contributor Insights ルールのみの ARN を表示する新しい Allow ステートメントに移動します。次の例を参照してください。

    { "Effect": "Allow", "Action": "cloudwatch:GetInsightRuleReport", "Resource": [ "PublicContributorInsightsRuleARN1", "PublicContributorInsightsRuleARN2" ] }

    これを行う場合は、現在のポリシーの次のようなセクションから必ず cloudwatch:GetInsightRuleReport を削除してください。

    { "Effect": "Allow", "Action": [ "cloudwatch:GetInsightRuleReport", "cloudwatch:GetMetricData", "cloudwatch:DescribeAlarms", "ec2:DescribeTags" ], "Resource": "*" }

共有しているユーザーが複合アラームを表示できるよう許可する

ダッシュボードを共有する場合、デフォルトでは、ダッシュボード上の複合アラームウィジェットは、ダッシュボードを共有しているユーザーには表示されません。複合アラームウィジェットを表示するには、ダッシュボード共有ポリシーに DescribeAlarms: * 許可を追加する必要があります。その許可は以下のようになります。

{ "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": "*" }
警告

前述のポリシーステートメントは、アカウント内のすべてのアラームへのアクセスを付与します。cloudwatch:DescribeAlarms の範囲を縮小するには、Deny ステートメントを使用する必要があります。ポリシーに Deny ステートメントを追加し、ロックダウンするアラームの ARM を指定できます。その拒否ステートメントは、次のようになります。

{ "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": "*" }, { "Effect": "Deny", "Action": "cloudwatch:DescribeAlarms", "Resource": [ "SensitiveAlarm1ARN", "SensitiveAlarm1ARN" ] }

共有しているユーザーが、ログテーブルウィジェットを表示できるようにする

ダッシュボードを共有する場合、デフォルトでは、ダッシュボード上の CloudWatch Logs Insights ウィジェットは、ダッシュボードを共有しているユーザーには表示されません。これは、現在存在する CloudWatch Logs Insights ウィジェットと、共有後にダッシュボードに追加される Insights ウィジェットの両方に影響を与えます。

これらのユーザーが CloudWatch Logs ウィジェットを表示できるようにするには、ダッシュボードを共有するために IAM ロールにアクセス許可を追加する必要があります。

ダッシュボードを共有するユーザーに CloudWatch Logs ウィジェットを表示できるようにするには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、ダッシュボードを選択します。

  3. 共有ダッシュボードの名前を選択します。

  4. [Actions (アクション)]、[Share dashboard (ダッシュボードの共有)] の順に選択します。

  5. [Resources (リソース)] で、[IAM Role (IAM ロール)] を選択します。

  6. IAM コンソールで、表示されたポリシーを選択します。

  7. [Edit policy (ポリシーの編集)] を選択し、次のステートメントを追加します。新しいステートメントでは、共有するロググループのみの ARN を指定することをお勧めします。次の例を参照してください。

    { "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:StartQuery", "logs:StopQuery", "logs:GetLogRecord", "logs:DescribeLogGroups" ], "Resource": [ "SharedLogGroup1ARN", "SharedLogGroup2ARN" ] },
  8. [Save Changes] を選択します。

ダッシュボード共有のための IAM ポリシーに、リソースとして * を持つ 5 つのアクセス許可が既に含まれている場合は、ポリシーを変更し、共有するロググループの ARN のみを指定することを強くお勧めします。例えば、このようなアクセス許可の Resource セクションが以下だったとします。

"Resource": "*"

次の例のように、共有するロググループの ARN だけを指定するようにポリシーを変更します。

"Resource": [ "SharedLogGroup1ARN", "SharedLogGroup2ARN" ]

共有しているユーザーがカスタムウィジェットを表示できるようにする

ダッシュボードを共有する場合、デフォルトでは、ダッシュボード上のカスタムウィジェットは、ダッシュボードを共有しているユーザーには表示されません。これは、現存するカスタムウィジェットと、共有後にダッシュボードに追加されるカスタムウィジェットの両方に影響を与えます。

これらのユーザーがカスタムウィジェットを表示できるようにするには、IAM ロールにアクセス許可を追加してダッシュボードを共有する必要があります。

ダッシュボードを共有するユーザーがカスタムウィジェットを表示できるようにするには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、ダッシュボードを選択します。

  3. 共有ダッシュボードの名前を選択します。

  4. [Actions (アクション)]、[Share dashboard (ダッシュボードの共有)] の順に選択します。

  5. [Resources (リソース)] で、[IAM Role (IAM ロール)] を選択します。

  6. IAM コンソールで、表示されたポリシーを選択します。

  7. [Edit policy (ポリシーの編集)] を選択し、次のステートメントを追加します。新しいステートメントでは、共有する Lambda 関数のみの ARN を指定することをお勧めします。次の例を参照してください。

    { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "LambdaFunction1ARN", "LambdaFunction2ARN" ] }
  8. [Save Changes] を選択します。

ダッシュボード共有のための IAM ポリシーに、リソースとして * を持つアクセス許可が既に含まれている場合は、ポリシーを変更し、共有する Lambda 関数の ARN のみを指定することを強くお勧めします。例えば、このようなアクセス許可の Resource セクションが以下だったとします。

"Resource": "*"

次の例のように、共有するカスタムウィジェットの ARN のみを指定するようにポリシーを変更します。

"Resource": [ "LambdaFunction1ARN", "LambdaFunction2ARN" ]