IAM で Amazon QuickSight を使用する - Amazon QuickSight

IAM で Amazon QuickSight を使用する

   適用先: Enterprise Edition と Standard Edition 
   対象者: システム管理者 

IAM を使用して Amazon QuickSight へのアクセスを管理する前に、Amazon QuickSight で使用できる IAM 機能について理解しておく必要があります。Amazon QuickSight およびその他の AWS のサービスが IAM と連携する方法の概要を把握するには、「IAM ユーザーガイド」の「IAM と連携する AWS のサービス」を参照してください。

Amazon QuickSight ポリシー (アイデンティティベース)

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、またアクションを許可または拒否する条件を指定できます。Amazon QuickSight は、特定のアクション、リソース、および条件キーをサポートしています。JSON ポリシーで使用するすべての要素については、IAM ユーザーガイドIAM JSON ポリシーの要素のリファレンスを参照してください。

AWSルート認証情報または IAM ユーザーの認証情報を使用して、 Amazon QuickSight アカウントを作成できます。AWSルートおよび管理者認証情報には既に、Amazon QuickSight のAWS へのリソースのアクセスを管理するために必要なすべてのアクセス権限があります。

しかし、root 認証情報を保護して、代わりに IAM ユーザー認証情報を使用することをお勧めします。そのためには、ポリシーを作成して、Amazon QuickSight で使用する予定の IAM ユーザーおよびロールにアタッチします。ポリシーには、以下のセクションに説明されているように、実行する必要のある Amazon QuickSight 管理タスクに該当する適切なステートメントが含まれている必要があります。

重要

Amazon QuickSight および IAM ポリシーを使用する場合は、次の点に注意してください。

  • Amazon QuickSight によって作成されたポリシーに直接変更を加えないでください。ユーザーがそのポリシーに変更を加えると、Amazon QuickSight は編集できなくなります。これにより、ポリシーに問題が発生する可能性があります。この問題を修正するには、以前に変更を加えたポリシーを削除してください。

  • Amazon QuickSight アカウントの作成時にアクセス許可エラーが発生する場合は、IAM ユーザーガイドAmazon QuickSight で定義されるアクションを参照してください。

  • 場合によっては、ルートアカウントからもアクセスできない Amazon QuickSight アカウントがあります (誤って Directory Service を削除した場合など)。この場合、古い Amazon QuickSight アカウントを削除してから再作成することができます。詳細については、「Amazon QuickSight サブスクリプションの削除とアカウントの閉鎖」を参照してください。

アクション

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action 要素には、ポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。一致する API オペレーションのない許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

Amazon QuickSight のポリシーアクションは、アクションの前に以下のプレフィックスを使用します: quicksight:。たとえば、 Amazon EC2 RunInstances API オペレーションで Amazon EC2 インスタンスを実行するためのアクセス許可をユーザーに付与するには、ポリシーに ec2:RunInstances アクションを含めます。ポリシーステートメントには、Action または NotAction エレメントを含める必要があります。Amazon QuickSight は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。

単一のステートメントに複数のアクションを指定するには、次のようにコンマで区切ります。

"Action": [ "quicksight:action1", "quicksight:action2"]

ワイルドカード (*) を使用して複数のアクションを指定することができます。たとえば、Create という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "quicksight:Create*"

Amazon QuickSight は、多数の AWS Identity and Access Management (IAM) アクションを提供します。すべての Amazon QuickSight アクションは、quicksight:Subscribe のように、プレフィックス quicksight: がついています。IAM ポリシーで Amazon QuickSight アクションを使用する方法については、Amazon QuickSight 向けの IAM ポリシーの例 を参照してください。

Amazon QuickSight アクションの最新リストについては、IAM ユーザーガイドAmazon QuickSight で定義されるアクションを参照してください。

リソース

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素は、オブジェクトあるいはアクションが適用されるオブジェクトを指定します。ステートメントには、Resource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルのアクセス許可をサポートしないアクションの場合は、ワイルドカード (*) を使用して、ステートメントがすべてのリソースに適用されることを示します。

"Resource": "*"

次に、ポリシーの例を示します。つまり、このポリシーがアタッチされている発信者は、グループに追加するユーザー名が CreateGroupMembership でない限り、すべてのグループで user1 オペレーションを呼び出すことができます。

{ "Effect": "Allow", "Action": "quicksight:CreateGroupMembership", "Resource": "arn:aws:quicksight:us-east-1:aws-account-id:group/default/*", "Condition": { "StringNotEquals": { "quicksight:UserName": "user1" } } }

リソースの作成など、一部の Amazon QuickSight は、特定のリソースで実行できません。このような場合は、ワイルドカード (*) を使用する必要があります。

"Resource": "*"

一部の API アクションには、複数のリソースが関連します。複数のリソースを単一のステートメントで指定するには、ARN をカンマで区切ります。

"Resource": [ "resource1", "resource2"

Amazon QuickSight リソースタイプとその Amazon リソースネーム (ARN) のリストを確認するには、IAM ユーザーガイドAmazon QuickSight で定義されるリソースを参照してください。どのアクションで各リソースの ARN を指定できるかについては、Amazon QuickSight で定義されるアクションを参照してください。

条件キー

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルが、どのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素 (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition 要素はオプションです。イコールや未満などの条件演算子を使用して条件式を作成することで、ポリシーの条件とリクエスト内の値を一致させることができます。

1 つのステートメントに複数の Condition 要素を指定する場合、または 1 つの Condition 要素に複数のキーを指定する場合、AWS では AND 論理演算子を使用してそれらを評価します。単一の条件キーに複数の値を指定する場合、AWS では OR 論理演算子を使用して条件を評価します。ステートメントの許可が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば IAM ユーザーに、IAM ユーザー名がタグ付けされている場合のみリソースにアクセスできる許可を付与することができます。詳細については、「IAM ユーザーガイド」の「IAM ポリシーの要素: 変数およびタグ」を参照してください。

AWS はグローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、「IAM ユーザーガイド」の「AWS グローバル条件コンテキストキー」を参照してください。

Amazon QuickSight にはサービス固有条件キーがありませんが、いくつかのグローバル条件キーの使用をサポートしています。すべてのAWSグローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。

Amazon QuickSight のアイデンティティベースのポリシーの例を表示するには、Amazon QuickSight 向けの IAM アイデンティティベースポリシー を参照してください。

Amazon QuickSight ポリシー (リソースベース)

Amazon QuickSight では、リソースベスポリシーはサポートされていません。ただし、 Amazon QuickSight コンソールを使用して、AWS アカウント 内の他の AWS リソースへのアクセスを設定することができます。

Amazon QuickSight のタグに基づいた認可

Amazon QuickSight は、リソースのタグ付けやタグに基づいたアクセスの制御をサポートしていません。

Amazon QuickSight IAM ロール

IAM ロールは AWS アカウント内のエンティティで、特定の許可を持っています。IAM ロールを使用してアクセス許可をグループ化することで、Amazon QuickSight アクションへのユーザーのアクセスを管理しやすくなります。

Amazon QuickSight は、次のロールの機能をサポートしていません。

  • サービスにリンクされたロール。

  • サービスロール。

  • 一時的な認証情報 (直接使用): ただし、Amazon QuickSight では、一時的な認証情報を使用して、埋め込みダッシュボードにアクセスするための IAM ロールを引き受けることをユーザーに許可します。詳細については、「埋め込み分析の使用」を参照してください。

Amazon QuickSight で IAM ロールを使用する方法の詳細については、IAM で Amazon QuickSight を使用する および Amazon QuickSight 向けの IAM ポリシーの例 を参照してください。

IAM ロールを Amazon QuickSight に渡す

 適用先: Enterprise Edition 

IAM ユーザーが Amazon QuickSight にサインアップすると、QuickSight 管理ロール (これがデフォルトのロールです) の使用を選択できます。または、既存の IAM ロールを QuickSight に渡すこともできます。

前提条件

ユーザーが IAM ロールを QuickSight に渡すには、IAM 管理者が次のタスクを完了する必要があります。

  • IAM ロールを作成します。IAM ロールの作成の詳細については、IAM ユーザーガイドの「IAM ロールの作成」を参照してください。

  • QuickSight がロールを引き受けることを許可する信頼ポリシーを IAM ロールにアタッチする。次の例を使用して、ロールのポリシーを作成します。次の信頼ポリシーの例では、Amazon QuickSight プリンシパルがアタッチされている IAM ロールを引き受けることを許可しています。

    IAM 信頼ポリシーの作成とロールへのアタッチの詳細については、IAM ユーザーガイドの「ロールの修正 (コンソール)」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "quicksight.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  • IAM 管理者 (IAM ユーザーまたはロール) に次の IAM アクセス権限を割り当てます。:

    • quicksight:UpdateResourcePermissions - これにより、QuickSight 管理者である IAM ユーザーに、QuickSight のリソースレベルのアクセス許可を更新するアクセス権限が付与されます。QuickSight で定義されるリソースタイプの詳細については、IAM ユーザーガイドの「Amazon QuickSight のアクション、リソース、および条件キー」を参照してください。

    • iam:PassRole - これにより、QuickSight にロールを渡す権限がユーザーに付与されます。詳細については、IAM ユーザーガイドAWS サービスにロールを渡す許可をユーザーに付与するを参照してください。

    • iam:ListRoles - (オプション) これにより、QuickSight の既存のロールのリストを表示する権限がユーザーに付与されます。このアクセス権限が提供されない場合、ARN を使用して既存の IAM ロールを使用できます。

    以下は、Amazon QuickSight でのリソースレベルの許可の管理、IAM ロールの一覧表示、および IAM ロールの受け渡しを可能にする IAM 許可ポリシーの例です。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role:*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/path/role-name", "Condition": { "StringEquals": { "iam:PassedToService": [ "quicksight.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": "quicksight:UpdateResourcePermissions", "Resource": "*" } ] }

    Amazon QuickSight で使用できる (IAM) ポリシーの他の例は、「Amazon QuickSight 向けの IAM ポリシーの例」を参照してください。

ユーザーまたはユーザーグループにアクセス許可ポリシーを割り当てる詳細については、IAM ユーザーガイドの「IAM ユーザーのアクセス許可の変更」を参照してください。

IAM 管理者が前提条件を完了すると、IAM ユーザーは IAM ロールを QuickSight に渡すことができます。これは、QuickSight にサインアップする際に IAM ロールを選択するか、または[QuickSight のセキュリティとアクセス許可] ページの switching to an IAM role によって行こないます。QuickSight で既存の IAM ロールに切り替える方法については、次のセクションを参照してください。

追加のポリシーのアタッチ

Amazon Athena や Amazon S3 などの別の AWS のサービスを使用している場合は、特定のアクションを実行するための QuickSight アクセス権限を付与するアクセス権限ポリシーを作成できます。その後、後で QuickSight に渡す IAM ロールにポリシーをアタッチできます。次に、追加のアクセス権限ポリシーを設定して IAM ロールにアタッチする方法の例を示します。

Athena の QuickSight の管理ポリシーの例については、Amazon Athena ユーザーガイドの「AWSQuicksightAthenaAccess 管理ポリシー」を参照してください。。IAM ユーザーは、次の ARN を使用して QuickSight でこのロールにアクセスできます: arn:aws:iam::aws:policy/service-role/AWSQuicksightAthenaAccess

次のポリシーの例では、 Amazon S3 の QuickSight のアクセス権限を示しています。Amazon S3 での IAM の使用方法の詳細については、Amazon S3 ユーザーガイドの「Amazon S3 の Identity and Access Management」を参照してください。

QuickSight から別のアカウントの Amazon S3 バケットへのクロスアカウントアクセスを作成する方法については、AWS ナレッジセンターの「Amazon QuickSight から別のアカウントの Amazon S3 バケットへのクロスアカウントアクセスを設定する方法」を参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "arn:aws:s3:::*" }, { "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::aws-athena-query-results-us-west-2-123456789" ] }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::aws-athena-query-results-us-west-2-123456789/*" ] }, { "Action": [ "s3:ListBucketMultipartUploads", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::aws-athena-query-results-us-west-2-123456789" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::aws-athena-query-results-us-west-2-123456789/*" ] } ] }

Amazon QuickSight での既存の IAM ロールの使用

QuickSight 管理者で、QuickSight リソースを更新して IAM ロールを渡す権限を持っている場合は、QuickSight で既存の IAM ロールを使用できます。QuickSight で IAM ロールを渡すための前提条件の詳細については、前のリストで概説した prerequisites を参照してください。

QuickSight で IAM ロールを渡す方法については、次の手順に従います。

QuickSight で既存の IAM ロールを使用するには

  1. QuickSight で、右上のナビゲーションバーで、アカウント名を選択してから、[Manage QuickSight] を選択します。

  2. 開いた [Manage QuickSight] ページで、左のメニューの [Security & Permissions] を選択します。

  3. 開いた [Security & Permissions] ページの [QuickSight access to AWS services] で、[Manage] を選択します。

  4. [IAM ロール] は [Use an existing role] を選択し、次のいずれかを実行します。

    • リストから使用するロールを選択します。

    • または、既存の IAM ロールのリストが表示されない場合は、ロールの IAM ARN を次の形式で入力できます: arn:aws:iam::account-id:role/path/role-name

  5. [Save] を選択します。