AWS アカウントの設定 - Amazon Redshift

AWS アカウントの設定

Amazon Redshift コンソールからクエリエディタ v2 を選択すると、ブラウザに新しいタブが開き、クエリエディタ v2 インターフェイスが表示されます。適切な権限があれば、現在の AWS リージョン にある AWS アカウント が所有する Amazon Redshift クラスターやワークグループのデータにアクセスすることができます。

管理者が AWS アカウントのために最初にクエリエディタ v2 を設定するときは、クエリエディタ v2 のリソースを暗号化するために使用する AWS KMS key を選択します。デフォルトでは、AWS 所有キーは、リソースを暗号化するために使用されます。または、管理者は、設定ページでキーの Amazon リソースネーム (ARN) を選択することで、カスタマー管理キーを使用できます。アカウントの設定後、AWS KMS 暗号化の設定は変更できません。クエリエディタ v2 での顧客管理キーの作成と使用の詳細については、クエリエディタ V2 で使用する AWS KMS 顧客管理キーの作成を参照してください。管理者は、ファイルからのデータのロードなど、一部の機能に使用する S3 バケットとパスをオプションで選択することもできます。詳細については、「ローカルファイル設定とワークフローからのデータのロード」を参照してください。

Amazon Redshift クエリエディタ v2 は、認証、暗号化、分離、コンプライアンスをサポートし、保管中のデータと転送中のデータを安全に保ちます。データセキュリティとクエリエディタ v2 の詳細については、以下を参照してください。

AWS CloudTrail は、AWS アカウント により、またはそのアカウントに代わって行われた API コールや関連イベントを取得し、指定した Amazon S3 バケットにログファイルを送信します。AWS を呼び出したユーザーとアカウント、呼び出し元の IP アドレス、および呼び出し日時を特定できます。AWS CloudTrail におけるクエリエディタ v2 の動作の詳細については、「CloudTrail によるログ記録」を参照してください。CloudTrail の詳細については、「AWS CloudTrail ユーザーガイド」を参照してください。

クエリエディタ v2 には、リソースの一部に対して調整可能なクォータがあります。詳細については、「Amazon Redshift オブジェクトのクォータ」を参照してください。

クエリエディタ v2 で作成されたリソース

クエリエディタ v2 では、保存されたクエリやグラフなどのリソースを作成できます。クエリエディタ v2 のすべてのリソースは、IAM ロールまたはユーザーに関連付けられています。IAM ロールにポリシーをアタッチし、そのロールをユーザーに割り当てることをお勧めします。

クエリエディタ v2 では、保存されたクエリとグラフのタグを追加および削除できます。これらのタグは、カスタム IAM ポリシーを設定するときや、リソースを検索するときに使用できます。AWS Resource Groups タグエディタを使用してタグを管理することもできます。

IAM ロールと IAM ポリシーを設定することで、AWS リージョンの同じ AWS アカウントで他とクエリを共有できます。

クエリエディタ V2 で使用する AWS KMS 顧客管理キーの作成

対称暗号化顧客管理キーを作成するには

クエリエディタ v2 リソースを暗号化する対称暗号化顧客管理キーを作成するには、AWS KMS コンソールまたは AWS KMS API オペレーションを使用します。キーの作成方法については AWS Key Management Service デベロッパーガイドの「対称暗号化 AWS KMS キーの作成」を参照してください。

キーポリシー

キーポリシーは、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。顧客管理キーを作成するときに、キーポリシーを指定できます。詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS キーへのアクセス管理」を参照してください。

Amazon Redshift クエリエディタ v2 で顧客管理キーを使用するには、キーポリシーで次の API オペレーションが許可されている必要があります。

  • kms:GenerateDataKey – データを暗号化するために、一意の対称データキーを生成します。

  • kms:Decrypt – カスタマー管理のキーで暗号化されたデータを復号化します。

  • kms:DescribeKey — お客様が管理するキーの詳細を提供し、サービスがキーを検証できるようにします。

以下は、AWS アカウント 111122223333 のサンプル AWS KMS ポリシーです。最初のセクションでは、kms:ViaService がキーの使用をクエリエディタ v2 サービス (ポリシーでは sqlworkbench.region.amazonaws.com と呼びます) に制限しています。AWS アカウント がキーを使用するには 111122223333である必要があります。2 番目のセクションでは、ルートユーザーとキー管理者の AWS アカウント 111122223333 がキーにアクセスできます。

AWS アカウント を作成する場合は、このアカウントのすべての AWS のサービス とリソースに対してフルアクセスを持つ 1 つのサインイン ID から始めます。このアイデンティティは AWS アカウント のルートユーザーと呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでサインインすることによってアクセスできます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザーの認証情報を保護し、それらを使用してルートユーザーのみが実行できるタスクを実行してください。ルートユーザーとしてサインインする必要があるタスクの完全なリストについては、「IAM ユーザーガイド」の「ルートユーザー認証情報が必要なタスク」を参照してください。

{ "Version": "2012-10-17", "Id": "key-consolepolicy", "Statement": [ { "Sid": "Allow access to principals authorized to use Amazon Redshift Query Editor V2", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "sqlworkbench.region.amazonaws.com", "kms:CallerAccount": "111122223333" } } }, { "Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:*" ], "Resource": "arn:aws:kms:region:111122223333:key/key_ID" } ] }

次のリソースは、AWS KMS キーについての詳細を説明しています。

  • AWS KMS ポリシーの詳細については、「AWS Key Management Service デベロッパーガイド」の「ポリシーでのアクセス許可の指定」を参照してください。

  • トラブルシューティング AWS KMS ポリシーの情報については、「AWS Key Management Service デベロッパーガイド」の「キーアクセスのトラブルシューティング」を参照してください。

  • キーの詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS キー」を参照してください。

クエリエディタ v2 へのアクセス

クエリエディタ v2 にアクセスするには、アクセス許可が必要です。管理者は、次のいずれかの AWS マネージドポリシーをロールにアタッチして、アクセス許可を付与できます (IAM ロールにポリシーをアタッチし、そのロールをユーザーに割り当てることをお勧めします)。これらの AWS 管理ポリシーは、リソースのタグ付けでクエリを共有する方法を制御するさまざまなオプションを使用して記述されます。IAM コンソール (https://console.aws.amazon.com/iam/) を使用して IAM ポリシーをアタッチできます。

  • AmazonRedshiftQueryEditorV2FullAccess – アカウントの Amazon Redshift クエリエディタ v2 オペレーションとリソースへの完全なアクセス権を付与します。このポリシーは、その他の必要なサービスへのアクセス権限も付与します。

  • AmazonRedshiftQueryEditorV2NoSharing — リソースを共有せずに Amazon Redshift クエリエディタ v2 を操作する権限を付与します。このポリシーは、その他の必要なサービスへのアクセス権限も付与します。

  • AmazonRedshiftQueryEditorV2ReadSharing — リソース共有を限定して Amazon Redshift クエリエディタ v2 を操作する権限を付与します。付与されたプリンシパルは、チームと共有されているリソースの読み取りはできますが、更新はできません。このポリシーは、その他の必要なサービスへのアクセス権限も付与します。

  • AmazonRedshiftQueryEditorV2ReadWriteSharing — リソースを共有して Amazon Redshift クエリエディタ v2 を操作する権限を付与します。付与されたプリンシパルは、そのチームと共有されているリソースを読み取り、更新することができます。このポリシーは、その他の必要なサービスへのアクセス権限も付与します。

また、提供された管理ポリシーで許可もしくは拒否されたアクセス権限に基づいて、独自のポリシーを作成することもできます。IAM コンソールのポリシーエディタを使用して独自のポリシーを作成する場合は、ビジュアルエディタでポリシーを作成する対象のサービスとして、[SQL Workbench] を選択します。クエリエディタ v2 では、ビジュアルエディタ および IAM Policy Simulator の中で、サービス名として AWS SQL Workbench を使用します。

プリンシパル (IAM ロールを割り当てたユーザー) が Amazon Redshift クラスターに接続するには、クエリエディタ v2 マネージドポリシーのいずれかでアクセス許可が必要です。またこのクラスターへは redshift:GetClusterCredentials アクセス許可も必要です。このアクセス許可を取得するには、管理者アクセス許可を持つユーザーが、一時的な認証情報を使用してクラスターへの接続に使用する IAM ロールにポリシーをアタッチできます。特定のクラスターにポリシーのスコープを設定することも、より一般的なポリシーを設定することもできます。一時的な認証情報を使用するアクセス許可の詳細については、「GetClusterCredentials を呼び出す権限を持つ IAM ロールまたはユーザーの作成」を参照してください。

プリンシパル (通常は IAM ロールを割り当てたユーザー) が、アカウント内の他のユーザーに対して [アカウント設定] ページで結果セットをエクスポートすることを許可するには、sqlworkbench:UpdateAcountExportSettings アクセス許可をロールにアタッチする必要があります。このアクセス許可は、AmazonRedshiftQueryEditorV2FullAccessAWS 管理ポリシーにあります。

クエリエディタ v2 に新機能が追加されると、AWS 管理ポリシーも必要に応じて更新されます。提供されたマネージドポリシーで許可および拒否された権限をベースにして独自のポリシーを作成する場合は、マネージドポリシーの変更に対応した最新のポリシーを編集してください。Amazon Redshift の管理ポリシーの詳細については、「Amazon Redshift の AWS 管理ポリシー」を参照してください。

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

注記

AWS IAM Identity Center 管理者がアカウント全体にわたり特定のアクセス許可セットのアクセス許可セットの関連付けをすべて削除すると、削除されたアクセス許可セットに元々関連付けられていたクエリエディタのリソースにアクセスできなくなります。後で同じアクセス許可を再作成すると、新しい内部識別子が作成されます。内部識別子が変更されたため、ユーザーが以前所有していたクエリエディタのリソースにはアクセスできません。管理者がアクセス許可セットを削除する前に、そのアクセス許可セットのユーザーは、ノートブックやクエリなどのクエリエディタのリソースをバックアップとしてエクスポートしておくことをお勧めします。

クエリエディタ v2 からクラスターまたはワークグループに接続するためのプリンシパルタグの設定

フェデレーションユーザーオプションを使用してクラスターまたはワークグループに接続するには、プリンシパルタグを使って IAM ロールまたはユーザーを設定します。または、RedshiftDbUserおよび (オプション) RedshiftDbGroups で、ID プロバイダー (IdP) によって渡されるようにセットアップします。IAM を使用したタグの管理の詳細については、IAM ユーザーガイドの「AWS Security Token Service でのセッションタグの受け渡し」を参照してください。AWS Identity and Access Management を使用してアクセスをセットアップするために、管理者は IAM コンソールを使用してタグを追加できます (https://console.aws.amazon.com/iam/)。

IAM ロールにプリンシパルタグを追加するには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. フェデレーションユーザーを使用して、クエリエディタ v2 へのアクセスが必要なロールを選択します。

  4. [タグ] タブを選択します。

  5. [タグの管理] をクリックします。

  6. [Add tag] (タグの追加) を選択して、RedshiftDbUser[Key] (キー) に入力し、フェデレーションユーザー名を [Value] (値) に入力します。

  7. オプションで、[タグの追加] を選択して、RedshiftDbGroups[キー] に入力し、ユーザーに関連付けるグループ名を [値] に入力します。

  8. [変更を保存] を選択して、選択した IAM ロールに関連付けられているタグのリストを表示します。変更が反映されるまで、数秒かかる場合があります。

  9. フェデレーションユーザーを使用するには、変更が反映された後、クエリエディタ v2 のページを更新します。

プリンシパルタグを渡すように ID プロバイダー (IdP) をセットアップする

ID プロバイダー (IdP) を使用してタグを設定する手順は、IdP によって異なります。ユーザーおよびグループ情報を SAML 属性に渡す手順については、IdP のドキュメントを参照してください。正しく設定すると、AWS Security Token Service によって使用され、RedshiftDbUser および RedshiftDbGroups のプリンシパルタグに表示される SAML レスポンスに次の属性が表示されます。

<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbUser"> <AttributeValue>db-user-name</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbGroups"> <AttributeValue>db-groups</AttributeValue> </Attribute>

オプションの db_groups は、group1:group2:group3のようにコロンで区切る必要があります。

さらに、TransitiveTagKeys属性を使用して、ロールの連鎖中にタグを保持できます。

<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>RedshiftDbUser</AttributeValue> <AttributeValue>RedshiftDbGroups</AttributeValue> </Attribute>

クエリエディタ v2 のセットアップの詳細については、「クエリエディタv2 を使用するために必要なアクセス許可 」をご参照ください。

Active Directory フェデレーションサービス (AD FS) をセットアップする方法については、ブログ投稿「 Federate access to Amazon Redshift query editor v2 with Active Directory Federation Services (AD FS)」(Active Directory フェデレーションサービス (AD FS) を使用して Amazon Redshift クエリエディタ v2 へのアクセスをフェデレーションする) を参照してください。

Okta をセットアップする方法については、ブログ投稿「Federate single sign-on access to Amazon Redshift query editor v2 with Okta」(Okta を使用して Amazon Redshift クエリエディタ v2 へのシングルサインオンアクセスをフェデレーションする) を参照してください。

注記

クエリエディタ v2 の[フェデレーテッドユーザー] 接続オプションを使用してクラスターまたはワークグループに接続すると、ID プロバイダー (IdP) は RedshiftDbUserRedshiftDbGroups のカスタムプリンシパルタグを提供できます。現時点では、AWS IAM Identity Center はクエリエディタ v2 へのカスタムプリンシパルタグを直接渡すことはサポートしていません。