

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

# チュートリアル: Amazon Quick と IAM ID フェデレーション
<a name="tutorial-okta-quicksight"></a>


|  | 
| --- |
|    適用先: Enterprise Edition と Standard Edition  | 


|  | 
| --- |
|    対象者:  Amazon Quick Administrators と Amazon Quick Developer  | 

**注記**  
IAM ID フェデレーションは、ID プロバイダーグループと Amazon Quick の同期をサポートしていません。

次のチュートリアルでは、IdP Okta を Amazon Quick のフェデレーションサービスとして設定するためのチュートリアルを示します。このチュートリアルでは AWS Identity and Access Management (IAM) と Okta の統合について説明していますが、任意の SAML 2.0 IdPs を使用してこのソリューションを複製することもできます。

次の手順では、AWS 「アカウントフェデレーション」ショートカットを使用して Okta IdP にアプリを作成します。Okta は、この統合アプリケーションを次のように記述します。

「Okta を Amazon Web Services (AWS) Identity and Access Management (IAM) アカウントにフェデレーションすることで、エンドユーザーは Okta 認証情報を使用して割り当てられたすべての AWS ロールにシングルサインオンアクセスできるようになります。各 で AWS アカウント、管理者はフェデレーションを設定し、Okta を信頼するように AWS ロールを設定します。ユーザーが にサインインすると AWS、Okta シングルサインインエクスペリエンスが提供され、割り当てられた AWS ロールが表示されます。その後、必要なロールを選択できます。ロールは、認証セッション期間中のアクセス許可を定義しています。アカウント数が多いお客様は AWS 、代わりに Single Sign-On アプリを確認してください AWS 。」 (https://www.okta.com/aws/)

**Okta のAWS 「アカウントフェデレーション」アプリケーションショートカットを使用して Okta アプリケーションを作成するには**

1. Okta ダッシュボードにサインインします。お持ちでない場合は、[この Amazon Quick-branded URL](https://developer.okta.com/quickstart/) を使用して無料の Okta Developer Edition アカウントを作成します。Ｅ メールを有効にしたら、Okta にサインインします。

1. Okta のウェブサイトの左上で、[**<> Developer Console (デベロッパーコンソール)**] を選択し、続いて [**Classic UI (クラシック UI)**] を選択します。

1. [**Add Applications (アプリケーションを追加する)**] を選択し、続いて [**Add app (アプリの追加)**] を選択します。

1. **[検索]** に **aws** を入力し、検索結果から **[AWS アカウントフェデレーション]** を選択します。

1. [**Add (追加)**] を選択して、このアプリケーションのインスタンスを作成します。

1. [**Application label (アプリケーションラベル)**] には **AWS Account Federation - Amazon Quick** と入力します。

1. [**Next (次へ)**] を選択します。

1. [**SAML 2.0**]、[**Default Relay State (デフォルトのリレーステート)**] に **https://quicksight.aws.amazon.com** と入力します。

1. コンテキストメニュー (右クリック)の [**Identity Provider metadata (ID プロバイダーメタデータ)**] を開き、ファイルを選択して保存します。ファイルを `metadata.xml` と名付けます。次の手順でこのファイルが必要になります。

   ファイルのコンテンツは以下のようになります。

   ```
   <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://www.okta.com/exkffz2hATwiVft645d5">
       <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
       <md:KeyDescriptor use="signing">
           <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
           <ds:X509Data>
               <ds:X509Certificate>
               MIIDpjCCAo6gAwIBAgIGAXVjA82hMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYDVQQGEwJVUzETMBEG 
               . 
               .        (certificate content omitted)
               . 
               QE/6cRdPQ6v/eaFpUL6Asd6q3sBeq+giRG4=
               </ds:X509Certificate>
           </ds:X509Data>
           </ds:KeyInfo>
       </md:KeyDescriptor>
       <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
       <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified</md:NameIDFormat>
       <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://dev-1054988.okta.com/app/amazon_aws/exkffz2hATwiVft645d5/sso/saml"/>
       <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-1054988.okta.com/app/amazon_aws/exkffz2hATwiVft645d5/sso/saml"/>
       </md:IDPSSODescriptor>
       </md:EntityDescriptor>
   ```

1. XML ファイルを保存したら、Okta ページの下部までスクロールし、[**Done (完了)**] を選択します。

1. 可能であれば、このブラウザウィンドウを開いたままにします。チュートリアルの後半でこの ウィンドウ が必要になります。

次に、 AWS アカウントで ID プロバイダーを作成します。

**AWS Identity and Access Management (IAM) で SAML プロバイダーを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで、[**Identity providers (ID プロバイダー)**]、[**Create Provider (プロバイダーの作成)**] を選択します。

1. 以下の設定を入力します。
   + [**Provider Type (プロバイダーのタイプ)**] — リストから [**SAML**] を選択します。
   + [**Provider Name (プロバイダー名)**] — **Okta** と入力します。
   + [**Metadata Document (メタデータドキュメント)**] — 前の手順から XML ファイル `manifest.xml` をアップロードします。

1. [**Next Step (次のステップ)**]、[**Create (作成)**] の順に選択します。

1. 作成した IdP を見つけて選択し、設定を表示します。[**Provider ARN (プロバイダー ARN)**] を書き留めます。チュートリアルを終了するためにこれが必要です。

1. 設定を使用して ID プロバイダーが作成されていることを確認します。IAM で、**[ID プロバイダー]**、**[Okta]**] (追加した IdP)、**[メタデータのダウンロード]** を選択します。ファイルは、最近アップロードしたファイルである必要があります。

次に、IAM ロールを作成して、SAML 2.0 フェデレーションが の信頼されたエンティティとして機能するようにします AWS アカウント。このステップでは、Amazon Quick でユーザーをプロビジョニングする方法を選択する必要があります。次のいずれかを試すことができます。
+ 初めての訪問者が自動的に Amazon Quick ユーザーになるように、IAM ロールにアクセス許可を付与します。

**信頼されたエンティティとして SAML 2.0 フェデレーションの IAM ロールを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで [**Roles (ロール)**]、[**Create Role (ロールの作成)**] の順に選択します。

1. [**Select type of trusted entity (信頼されたエンティティのタイプを選択)**]で、**SAML 2.0 フェデレーション**ラベルが付いたカードを選択します。

1. [**SAML provider (SAML プロバイダー)**] で、前の手順で作成した IdP を選択します (例: `Okta`)。

1. **[Allow programmatic and AWS Management Console access]** (プログラムによるアクセスと マネジメントコンソールによるアクセスを許可する) オプションを有効にします。

1. **[Next: Permissions]** (次のステップ: 許可) を選択します。

1. 以下のポリシーをエディタに貼り付けます。

   ポリシーエディターで、プロバイダーの Amazon リソースネーム (ARN) を使用して JSON を更新します。

   ```
   {
       "Version": "2012-10-17"		 	 	 ,
       "Statement": [
       {
           "Effect": "Allow",
           "Action": "sts:AssumeRoleWithSAML",
           "Resource": "arn:aws:iam::111111111111:saml-provider/Okta",
           "Condition": {
           "StringEquals": {
               "saml:aud": "https://signin.aws.amazon.com/saml"
           }
           }
       }
       ]
       }
   ```

1. [**Review policy (ポリシーの確認)**] を選択します。

1. [**Name (名前)**] に **QuicksightOktaFederatedPolicy** と入力し、[**Create policy (ポリシーの作成)**] を選択します。

1. 再度、[**Create policy (ポリシーの作成)**]、[**JSON**] を選択します。

1. 以下のポリシーをエディタに貼り付けます。

   ポリシーエディタで、JSON を AWS アカウント ID で更新します。これは、プロバイダー ARN の前のポリシーで使用したものと同じアカウント ID である必要があります。

   ```
   {
       "Version": "2012-10-17"		 	 	 ,
       "Statement": [
           {
               "Action": [
                   "quicksight:CreateReader"
               ],
               "Effect": "Allow",
               "Resource": [
                   "arn:aws:quicksight::111111111111:user/${aws:userid}"
               ]
           }
       ]
       }
   ```

   次に示すように、ARN で AWS リージョン 名前を省略できます。

   ```
   arn:aws:quicksight::111111111111:user/$${aws:userid}
   ```

1. **[ポリシーの確認]** を選択します。

1. [**Name (名前)**] に **QuicksightCreateReader** と入力し、[**Create policy (ポリシーの作成)**] を選択します。

1. 右側の更新アイコンを選択して、ポリシーのリストを更新します。

1. [**Search (検索)**] に **QuicksightOktaFederatedPolicy** と入力します。ポリシーを選択して有効にします (![\[alt text not found\]](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/images/checkbox-on.png))。

   自動プロビジョニングを使用しない場合は、次のステップをスキップできます。

   Amazon Quick ユーザーを追加するには、[register-user](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RegisterUser.html) を使用します。Amazon Quick グループを追加するには、[create-group](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateGroup.html) を使用します。Amazon Quick グループにユーザーを追加するには、[create-group-membership](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateGroupMembership.html) を使用します。

1. (オプション) [**Search (検索)**] に **QuicksightCreateReader** と入力します。ポリシーを選択して有効にします (![\[alt text not found\]](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/images/checkbox-on.png))。

   Amazon Quick API を使用するのではなく、Amazon Quick ユーザーを自動的にプロビジョニングする場合は、このステップを実行します。

   `QuicksightCreateReader` ポリシーを使用すると、`quicksight:CreateReader` アクションを使用した自動プロビジョニングがアクティブ化されます。これにより、ダッシュボードの受信者 (閲覧者レベル) に初めてのユーザーがアクセスできるようになります。Amazon Quick 管理者は、後で Amazon Quick プロファイルメニュー、**Amazon Quick の管理**、**ユーザーの管理**からアップグレードできます。

1. IAM ポリシーを引き続きアタッチするには、[**Next: Tags (次へ: タグ)**] を選択します。

1. [**Next: Review (次へ: レビュー)**] を選択します。

1. [**Role name (ロール名)**] に **QuicksightOktaFederatedRole** と入力し、[**Create role (ロールの作成)**] を選択します。

1. 次のステップを実行して、この作業が正常に完了したことを確認します。

   1. IAM コンソール のメインページ [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) に戻ります。ブラウザの [**Back (戻る)**] ボタンを使用します。

   1. [**Roles (ロール)**] を選択します。

   1. [**Search (検索)**]に、Okta と入力します。検索結果から、[**QuicksightOktaFederatedRole**] を選択します。

   1. ポリシーの [**Summary (概要)**] ページで、[**Permissions (アクセス許可)**] タブを検証します。ロールに、アタッチした 1 つ以上のポリシーがあることを確認します。`QuicksightOktaFederatedPolicy` を含んでいる必要があります。ユーザー作成機能を追加することを選択した場合は、`QuicksightCreateReader` も含んでいる必要があります。

   1. ![\[alt text not found\]](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/images/caret-right-filled.png) アイコンを使用して、各ポリシーを開きます。テキストが、この手順に示されている内容と一致することを確認します。サンプルアカウント AWS アカウント 番号 111111111111 の代わりに独自の番号を追加したことを再度確認します。

   1. [**Trust relationships (信頼関係)**] タブで、[**Trusted entities (信頼されたエンティティ)**] フィールドに、ID プロバイダーの ARN が含まれていることを確認します。[**Identity providers (ID プロバイダー)**]、[**Okta**] で、IAM コンソールの ARN を再確認できます。

**Okta のアクセスキーを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. Okta が IAM ロールのリストをユーザーに表示することを許可するポリシーを追加します。このためにまず、[**Policy (ポリシー)**]、 [**Create policy (ポリシーの作成)**] を選択します。

1. [**JSON**] を選択し、以下のポリシーを入力します。

   ```
   {
       "Version": "2012-10-17"		 	 	 ,
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iam:ListRoles",
                   "iam:ListAccountAliases"
               ],
               "Resource": "*"
           }
       ]
       }
   ```

1. [**Review Policy (ポリシーの確認)**] を選択します。

1. [**Name (名前)**] に **OktaListRolesPolicy** と入力します。その後、[**Create policy (ポリシーの作成)**] を選択します。

1. Okta にアクセスキーを提供できるように、ユーザーを追加します。

   ナビゲーションペインで、[**Users (ユーザー)**]、[**Add user (ユーザーの追加)**] を選択します。

1. 以下の設定を使用します。
   + [**User name (ユーザー名)**] に「`OktaSSOUser`」と入力します。
   + [**Access type (アクセスの種類)**] の [**Programmatic access (プログラムによるアクセス)**] を有効にします。

1. [**Next: Permissions (次へ: アクセス許可)**] を選択します。

1. [**Attach existing policies directly (既存のポリシーを直接添付する)**] を選択します。

1. [**Search (検索)**] に **OktaListRolesPolicy** と入力し、検索結果から [**OktaListRolesPolicy**] を選択します。

1. [**次へ: タグ**]、[**次へ: 確認**] の順に選択します。

1. [**Create user**] を選択します。これで、アクセスキーを取得することができます。

1. **[.csv のダウンロード]** を選択し、キーファイルをダウンロードします。このファイルには、この画面に表示されるのと同じアクセスキー ID とシークレットアクセスキーが含まれています。ただし、 AWS はこの情報を 2 回表示しないため、 ファイルをダウンロードしてください。

1. 以下を実行して、このステップが正しく完了したことを確認します。

   1. IAM コンソールを開き、[**Users (ユーザー)**] を選択します。**[OktaSSOUser]** を検索し、検索結果からユーザー名を選択して開きます。

   1. [**Permissions (アクセス許可)**] タブで、**OktaListRolesPolicy** がアタッチされていることを確認します。

   1. ![\[alt text not found\]](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/images/caret-right-filled.png) アイコンを使用してポリシーを開きます。テキストが、この手順に示されている内容と一致することを確認します。

   1. アクセスキーはダウンロード済みですが、[**Security credentials (セキュリティ認証情報)**] タブでアクセスキーをチェックできます。新しいアクセスキーが必要な場合は、このタブに戻って、アクセスキーを作成できます。

次の手順で Okta に戻り、アクセスキーを指定します。アクセスキーは、新しいセキュリティ設定と連携して、 AWS と Okta IdP が連携できるようにします。

**AWS 設定を使用して Okta アプリケーションの設定を完了するには**

1. Okta ダッシュボードに戻ります。リクエストされた場合、サインインします。デベロッパーコンソールが開かれていない場合は、[**Admin (管理者)**] を選択して再度開きます。

1. Okta を再度開く必要がある場合は、次のステップに従ってこのセクションに戻ることができます。

   1. Okta にサインインします。[**Applications (アプリケーション)**] を選択します。

   1. **AWS アカウントフェデレーション - Amazon Quick** を選択します。これは、このチュートリアルの冒頭で作成したアプリケーションです。

   1. [**General (全般)**] と [**Mobile (モバイル)**]の間にある [**Sign On (サインオン)**] タブを選択します

1. [**Advanced Sign-On Settings (アドバンストサインオンの設定)**] までスクロールします。

1. **[ID プロバイダー ARN]** (SAML IAM フェデレーションでのみ必要) に、前の手順で作成したプロバイダー ARN を入力します。次に例を示します。

   ```
   arn:aws:iam::111122223333:saml-provider/Okta
   ```

1. [**Done (完了)**] または [**Save (保存)**] を選択します。ボタンの名前は、アプリケーションを作成しているか、または編集しているかによって異なります。

1. [**Provisioning (プロビジョニング)**] タブを選択し、タブ下部で [**Configure API Integration (API 統合の設定)**] を選択します。

1. [**Enable API integration (API 統合を有効にする)**] をオンにして、設定を表示します。

1. [**Access Key (アクセスキー)**] および [**Secret Key (シークレットキー)**] で、**OktaSSOUser** `_credentials.csv` という以前のファイルに事前にダウンロードしたアクセスキーとシークレットキーを提供します。

1. [**Test API Credentials (API 認証情報のテスト)**] を選択します。**[API インテグレーションを有効にする]** 設定の上に、**[AWS アカウントフェデレーションが正常に検証されました]** と確認するメッセージが表示されます。

1. **[保存]** を選択します。

1. 左側の [**To App (アプリケーションへ)**] がハイライト表示されていることを確認し、右側の [**Edit (編集)**] を選択します。

1. [**Create Users (ユーザーの作成)**] で、オプション [**Enable (の有効化)**] をオンにします。

1. [**保存**] を選択します。

1. [**Provisioning (プロビジョニング)**] および [**Import (インポート)**] の近くにある [**Assignments (割り当て)**] タブで、[**Assign (割り当てる)**] を選択します。

1. フェデレーションアクセスを有効にするには、次の 1 つまたは複数の操作を行います。
   + 個々のユーザーを操作するには、[**Assign to People (人員に割り当てる)**] を選択します。
   + IAM グループを操作するには、[**Assign to Groups (グループに割り当てる)**] を選択します。特定の IAM グループ、または**すべてのユーザー (組織内のすべてのユーザー)**を選択できます。

1. IAM ユーザーまたはグループごとに、以下を実行します。

   1. [**Assign (割り当てる)**]、[**Role (ロール)**] を選択します。

   1. IAM ロールのリストから [**QuicksightOktaFederatedRole**] を選択します。

   1. [**SAML User Roles (SAML ユーザーロール)**]で、[**QuicksightOktaFederatedRole**] を有効にします。

1. [**Save and Go Back (保存して戻る)**] を選択し、続いて [**Done (完了)**] を選択します。

1. このステップを正しく完了したことを確認するには、左側の [**People (人員)**] または [**Groups (グループ)**] フィルターをクリックし、入力したユーザーまたはグループをチェックします。作成したロールがリストに表示されないためにこのプロセスを完了できない場合は、前の手順に戻って、設定を確認します。

**Okta を使用して Amazon Quick にサインインするには (サービスプロバイダーへの IdP サインイン)**

1. Okta 管理者アカウントを使用している場合は、ユーザーモードに切り替えます。

1. フェデレーションアクセスを許可されたユーザーを使用して、Okta Applications ダッシュボードにサインインします。アカウント**AWS フェデレーション - Amazon Quick **など、ラベル付きの新しいアプリケーションが表示されます。

1. アプリケーションアイコンを選択して、**AWS アカウントフェデレーション - Amazon Quick **を起動します。

Okta を使用して ID を管理し、Quick でフェデレーティッドアクセスを使用できるようになりました。

次の手順は、このチュートリアルのオプション部分です。そのステップに従うと、Amazon Quick がユーザーに代わって IdP に認可リクエストを転送することを承認します。この方法を使用すると、ユーザーは Amazon Quick にサインインでき、最初に IdP ページを使用してサインインする必要はありません。

**(オプション) Okta に認証リクエストを送信するように Amazon Quick を設定するには**

1. Amazon Quick を開き、プロファイルメニューから **Amazon Quick の管理**を選択します。

1. ナビゲーションペインで **[Single Sign-On (IAM フェデレーション)]** を選択します。

1. **[設定]**、**[IdP URL]** で、IdP がユーザーを認証するために提供する URL を入力します (例: https://dev-*1-----0*.okta.com/home/amazon\$1aws/*0oabababababaGQei5d5/282*)。これは、Okta アプリケーションのページの [**General (全般)**] タブ、[**Embed Link (埋め込みリンク)**] に表示されます。

1. [**IdP URL**] で、`RelayState` と入力します。

1. 次のいずれかを行ってください。
   + 最初に ID プロバイダーを使用してサインインをテストするには、[**Test starting with your IdP (IdP からのテスト開始)**] を使用します。Amazon Quick の開始ページ、例えば https://quicksight.aws.amazon.com/sn/start が表示されます。
   + Amazon Quick でサインインを最初にテストするには、**end-to-endエクスペリエンスのテスト**」で提供されているカスタム URL を使用します。`enable-sso` パラメータが URL に追加されます。もし`enable-sso=1` なら、IAM フェデレーションが認証を試みます。の場合`enable-sso=0`、Amazon Quick は認証リクエストを送信せず、以前と同じように Amazon Quick にサインインします。

1. [**Status (ステータス)**] で、[**ON (オン)**] を選択します。

1. 設定を保存するには [**Save (保存)**] を選択します。

Amazon Quick ダッシュボードへのディープリンクを作成して、ユーザーが IAM フェデレーションを使用して特定のダッシュボードに直接接続できるようにします。これを行うには、次に示すように、リレーステートフラグとダッシュボード URL を Okta シングルサインオン URL に追加します。

**シングルサインオン用の Amazon Quick ダッシュボードへのディープリンクを作成するには**

1. このチュートリアルの最初でダウンロードした `metadata.xml` ファイルにある、Okta アプリケーションの Single Sign-On (IAM フェデレーション) URL を見つけます。ファイルの下部近くの `md:SingleSignOnService` という名前の要素に URL があります。次の例に示すように、属性の名前は `Location` で、値は `/sso/saml` で終わります。

   ```
   <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-0000001.okta.com/app/amazon_aws/abcdef2hATwiVft645d5/sso/saml"/>
   ```

1. IAM フェデレーション URL の値を取得し、Amazon Quick ダッシュボードの URL の`?RelayState=`後に を追加します。`RelayState` パラメータは、ユーザーが認証 URL にリダイレクトされたときのステート (URL) をリレーします。

1. リレー状態を追加した新しい IAM フェデレーションに、Amazon Quick ダッシュボードの URL を追加します。生成された URL は以下のようになります。

   ```
   https://dev-1-----0.okta.com/app/amazon_aws/abcdef2hATwiVft645d5/sso/saml?RelayState=https://us-west-2.quicksight.aws.amazon.com/sn/analyses/12a12a2a-121a-212a-121a-abcd12abc1ab
   ```

1. 作成したリンクが開かない場合は、`metadata.xml` から最新の IAM フェデレーション URL を使用していることをチェックします。また、サインインに使用するユーザー名が複数の IAM フェデレーション Okta アプリに割り当てられていないことをチェックします。