Amazon Web Services ブログ
AWS Control Tower 環境での Okta と AWS Single Sign-On の統合
この記事は Integrating Okta with AWS Single Sign-On in an AWS Control Tower environment を翻訳したものです。
AWS Control Tower は、AWS Single Sign-On (AWS SSO) とのすぐに使用できるネイティブ統合を提供し、ユーザー、ロール、マルチアカウントアクセスを管理します。お客様の組織によっては、外部アイデンティティプロバイダーとの統合による認証と承認の処理など、より複雑な SSO 要件があります。Okta は、クラウド向けに構築されたエンタープライズグレードの ID 管理サービスですが、多くのオンプレミスアプリケーションと互換性があります。AWS Marketplace で Okta を見つけて登録することができます。このブログ投稿では、Okta でユーザー、エンタイトルメント、アカウント、ロールを管理できるように、AWS Control Tower、AWS SSO、Okta を外部 ID プロバイダーとして統合する方法を説明します。
クロスドメインアイデンティティ管理機能 (SCIM rfc7644) にシステムを使用して、AWS SSO との統合のために Okta がユーザー、グループ、グループメンバーシップを管理できるようにする方法を説明します。AWS Control Tower を Okta と統合する場合は、次のいずれかのオプションを選択する必要があります。
- Account Factory によってプロビジョニングされた新しいアカウントを含め、すべての AWS Control Tower マネージドアカウントで AWS Identity and Access Management (IAM) ロールを手動で作成します。
- AWS SSO の SCIM 機能を使用して、Okta と AWS の間でユーザーとロールを自動的に同期し、管理者が単一の場所でユーザーとアクセス許可を管理できるようにします。
このソリューションでは SCIM オプションを使用します。
ソリューションの概要
このソリューションでは、Okta と AWS Control Tower 間のアイデンティティフェデレーションを管理する Okta アプリケーションを作成します。Okta 内でユーザーとグループを管理し、そのアクセスを SCIM を介して AWS SSO にレプリケートします。Okta 内の 2 番目のアプリケーションは、Okta から AWS SSO へのユーザーとグループのプロビジョニングを自動化します。AWS SSO は、グループとアクセス許可セットとアカウント間のマッピングを処理します。これらのマッピングでは、アカウントを作成したり、新しいアクセス許可セットを定義したりするときに、最終的な変更が必要になります。
次の図は、ソリューションアーキテクチャを示しています。
- ユーザーは Okta に対して認証します。
- ユーザーは Okta で正常に認証されると AWS SSO にログオンします。
- 今回、AWS SSO によって管理されるセキュリティアサーションマークアップ言語 (SAML) を使用して、AWS 環境内でタスクを実行するためのロールを引き受けることができるようになりました。
認証されたユーザーは、SCIM を介して AWS SSO にプッシュされるユーザー名とグループを使用して Okta によって管理および検証されます。下図を参照してください。
前提条件
- AWS Control Tower 環境。この AWS Control Tower 入門ガイドに従って、必要に応じてセットアップしてください。
チュートリアル
次の手順を実行して、Okta と AWS Control Tower を自動ユーザープロビジョニングに統合します。
- AWS Marketplace で Okta を登録します。
- Okta SAML アプリケーション (ログインフロー) を作成し、ID フェデレーション用の AWS SSO に接続します。
- Okta SCIM アプリケーション (SCIM 同期フロー) を作成します。
- Okta グループを作成してアクセス許可セットにマッピングします。
ステップ 1: AWS Marketplace で Okta を登録する
このチュートリアルに従って、AWS Marketplace で Okta を登録します。
ステップ 2: Okta SAML アプリケーションを作成し、AWS SSO に接続する
A.Okta を外部 ID プロバイダーとして使用するように AWS SSO を設定
詳細については、AWS Single Sign-On ユーザーガイドの「外部 ID プロバイダーへの接続」を参照してください。Okta を外部 ID プロバイダーとして使用するように AWS SSO を設定するには、次の手順を実行します。
-
- AWS マネジメントコンソールにサインインし、AWS SSO サービスに移動します。
- AWS SSO コンソールの左側のペインで、[Settings] を選択します。
- [Settings] ページの [Identity Source] で、[Change] を選択します。
- [External Identity Provider] を選択します。
- [Service provider metadata] で、[Show individual metadata values] を選択します。
- ブラウザタブを開き、Okta コンソールにアクセスします。[AWS SSO console] タブを開いたままにします。
B.AWS SSO に接続する Okta アプリケーションを作成
Okta ギャラリーには AWS の既存のアプリケーションが表示されることがありますが、これらは個々の AWS アカウントに直接認証するためのものです。このソリューションでは、AWS SSO に接続するための独自のアプリケーションを作成する必要があります。
-
- Okta コンソールにログインします。画面の上部にデベロッパーコンソールが表示されている場合は、クラシック UI に変更します。ツールバーで、[Applications]、[Applications] の順に選択します。[Add Application] を選択します。
- [Create New App] を選択します。[Platform] ドロップダウンメニューで、[Web] を選択します。[Sign on method] で、[SAML 2.0] を選択します。[Create] を選択します。アプリケーションの名前(AWS SSO など)を指定し、[Next] を選択します。
- AWS SSO コンソールの [browser] タブから次のフィールドをコピーして貼り付けます。
- シングルサインオン URL: AWS SSO ACS URL
- オーディエンス URI (SP エンティティ ID): AWS SSO 発行者 URL
- 名前 ID 形式: EmailAddress
- その他のパラメータはデフォルトのままにしておきます。
- [Next] を選択します。I’m a software vendor.I’d like to integrate my app with Okta] を選択して、[Finish] を選択します。ツールバーで、[Applications] を選択し、作成したアプリケーション (AWS SSO) を選択します。[Sign On] サブタブを選択します。
- [Identity Provider metadata] を選択すると、ブラウザが XML データを含む新しいタブを開きます。okta-idp.xml として表示される XML をコンピューターに保存し、メタデータを表示しているブラウザタブを閉じます。
- Okta コンソールで、[Back to Applications] を選択するか、ツールバーの [Applications] を選択します。
C.メタデータをアップロード
外部 ID プロバイダーとして Okta の設定を完了するには、Okta アイデンティティプロバイダーのメタデータを AWS SSO にアップロードします。
-
- ステップ 2.A.1 で開いた AWS SSO コンソールのブラウザタブに切り替えます。
- [Browse] を選択し、ステップ 2.B.5 で保存した okta-idp.xml ドキュメントを選択します。
- [Identity Source] セクションの [Identity Source] 行で、[Change] を選択します。
- [Next: Review] を選択します。
- 提供された情報を確認します。
- 下部のフィールドに、CONFIRM と入力します。
- [Change Identity source] を選択します。再構成が完了したら、[Return to settings] を選択します。
現在 Okta と AWS SSO が統合されていますが、アクセス許可はマッピングされていません。
ステップ 3: Okta SCIM アプリケーションを作成
A. SCIM を有効にして Okta から AWS SSO にユーザーとグループを同期させる
詳細については、AWS Single Sign-On ユーザーガイドの「自動プロビジョニング」を参照してください。
-
- ステップ 2.A.1 で開いた AWS SSO コンソールのブラウザタブに切り替えます。
- ナビゲーションペインで [Settings] を選択します。
- [Enable automatic provisioning] を選択します。
- SCIM エンドポイントとトークンをテキストエディタにコピーして、次のセクションで使用します。
B.AWS SSO にプッシュするアプリケーションを作成
SCIM が有効になったので、SCIM を介して Okta から AWS SSO にユーザーとグループを自動的にプッシュするアプリケーションを作成します。詳細については、Okta ドキュメントの「アプリケーションの作成」を参照してください。
-
- ステップ 2.A.6 で開いた Okta コンソールブラウザタブに切り替えます。
- [Add Application] を選択します。
- 提案で、SCIM 2 Oauth を検索します。SCIM 2.0 Test App (OAuth Bearer Token) を選択します。 [Add] を選択します。
- [General Settings] ページで、アプリケーションラベル:AWS SSO — SCIM 2.0 (OAuth Bearer Token) と入力します。[Do not display application icon to users] を選択します。そして、[Do not display application icon in the Okta Mobile App] を選択します。[Done] を選択します。
- [Provisioning] タブで、[Configure API Integration] を選択します。[Enable API integration] を選択します。ステップ 3.A.4 でコピーしたパラメータを入力します。
- SCIM 2.0 Base Url の場合は、SCIM エンドポイントを使用します。
- OAuth Bearer Token の場合は、アクセストークンを使用します。
- [Save]、[Edit] の順に選択します。[Enable Create Users] を選択し、[Save] を選択します。
C.AWS SSO にプッシュするルールを作成
次に、条件を満たすグループを SCIM を通じて Okta から AWS SSO に自動的にプッシュするアプリケーション用のルールを作成します。ステップ 3.B から (AWS SSO — SCIM 2.0 (OAuth Bearer Token) を作成したのと同じアプリケーションで、次の操作を行います。
-
- [Push Groups]、[+ Push Groups] を選択し、[Find Groups by Rule] を選択します。[Rule name] に、「AWS Groups」と入力します。[Group name: starts with, ] に awssso と入力します。 任意のプレフィックスを使用できます。[Immediately push groups found by this rule]、[Create Rule] の順に選択します。上部のリボンで、[Directory – Groups] を選択します。
- [Add Group] を選択します。[Add Group] というポップアッププロンプトが表示されます。 [Add Group] プロンプトで、[Name] に AWS Users と入力します。[Add Group] を選択すると、メインの [Add Group] ページに戻ります。
- リストから AWS Users グループを選択します。
- [Manage Apps] を選択します。[Assign Applications] ポップアップウィンドウが表示されます。AWS SSO アプリケーションで、[Assign] を選択します。これは、ユーザーが AWS マネジメントコンソールで実際に起動するアプリです。
- AWS SSO – SCIM 2.0 (OAuth Bearer Token) アプリケーションで、[Assign] を選択します。 ユーザーにはこれは表示されませんが、アカウントとグループが AWS SSO にプロビジョニングされていることを確認します。[Save and go back] を選択します。[Done] を選択します。
ステップ 4: Okta ユーザーとグループを作成してマッピングする
ステップ 3 では、プレフィックスが awssso である AWS SSO グループにプッシュするルールを作成しました。このステップでは、オペレーションチームのメンバーと共に awwssoPowerUsers という名前のグループを作成します。このグループには、ユーザーとグループの管理を除き、AWS のサービスとリソースへのフルアクセス権が必要です。詳細については、AWS Control Tower ユーザーガイドの「AWS Single Sign-On によるユーザーおよびアクセスの管理」を参照してください。
A.Okta で新しいグループを作成する
Okta で新しいグループを作成し、AWS SSO と同期していることを確認します。
-
- Okta コンソールの上部のリボンで、[Directory]、[Groups] の順に選択します。
- [Add Group] を選択します。[Add Group] というポップアッププロンプトが表示されます。[Add Group] ページの [Name] に awsssoPowerUsers と入力します。[Add Group] を選択します。
- 上部のリボンで、[Applications] を選択します。
- AWS SSO – SCIM 2.0 (OAuth Bearer Token) アプリを開き、[Push Groups] を選択します。awsssoPowerUsers がリストされ、Active とマークされていることがわかります。
- AWS SSO コンソールのブラウザタブに切り替えます。ナビゲーションペインで [Groups] を選択します。awsssoPowerUsers が [No users] とリストされていることがわかります。
B.AWS SSO でアクセス許可セットを割り当てる
AWS SSO で適切な権限を持つアクセス許可セットをグループに割り当てます。
-
- 必要に応じて、AWS SSO コンソールのブラウザタブに切り替えます。
- ナビゲーションペインで、[AWS accounts]、[AWS organization] の順に選択します。すべてのアカウントを選択します。オペレーションチームに属するユーザーは、すべてのアカウントにアクセスできます。
- [Assign Users] ページで、[Groups] を選択します。[awsssoPowerUsers] を選択します。[Next: Permission sets] を選択します。
- [Select permission sets] ページで、[AWSPowerUsersAccess] を選択します。
- [Finish] を選択します。[Proceed to AWS accounts] を選択します。
C.Okta ポータルでユーザーを作成する
Okta ポータルでユーザーを作成するには、次の手順を実行します。
-
- Okta コンソールブラウザタブに切り替えます。
- コンソールの上部リボンで、[Directory]、[People] の順に選択します。[Add Person] を選択します。[Add Person] ページで、次の情報を入力します。
- [User type] で、[User] を選択します。
- [First name] に、ユーザの名を入力します。
- [Last name] に、ユーザーの姓を入力します。
- [Username] に、ユーザーの E メールを入力します。
- [Primary email] に、ユーザー E メールを入力します。
- [Groups] で awssso と入力し、[awsssoPowerUsers] の横にある [Add] を選択します。次に、AWS と入力し、[AWS Users] の横にある [Add] を選択します。
- [Password] で、[Set by admin] を選択し、パスワードを入力します。
- [User must change password on first login] チェックボックスをオフにします。[Save] を選択します。
- AWS SSO コンソールのブラウザタブに切り替えます。
- ナビゲーションペインで [Users] を選択します。作成したアカウントがリストに表示されます。[Display name of user first name user last name] と、[Username of user email] を選択します。
- ユーザーが「Created By: SCIM」と表示されることを確認します。
D.新しいユーザーが認証され、アクセス可能であることを確認します。
新しいユーザーは Okta によって認証され、割り当てられた AWS アカウントにアクセスできる必要があります。これが当てはまることを確認するには、次の手順を実行します。
-
- 認証の検証
- AWS SSO コンソールのブラウザタブに切り替えます。
- ナビゲーションペインで、[Dashboard] を選択します。
- ユーザーポータル URL をコピーします。
- プライベートモードまたはシークレットモードでブラウザウィンドウを開き、ユーザーポータル URL をアドレスバーに貼り付けます。ブラウザは Okta のログインページにリダイレクトするはずです。
- 次の情報を指定します。
- [username] には、ユーザーの E メールを入力します。
- [password] には、前のセクションで作成したユーザーパスワードを入力します。
- Okta の設定に基づいて、追加のセキュリティに関する質問を入力します。ログインすると、AWS SSO の開始ページに戻ります。
- AWS アカウントアクセスを確認します。アカウントアクセスを確認するには、次の手順を実行します。
- 認証の検証
-
-
- AWS SSO スタートページから、AWS アカウント (3) を選択します。
- 管理アカウントの名前を選択します。
- [AWSPowerUserAccess] 行で、[Management Console] を選択します。
-
ここで、AWSPowerUserAccess アクセス許可を使用して管理アカウントにログインする必要があります。
次のステップ
この時点で、Okta、AWS SSO、および AWS Control Tower の間に完全に機能する統合があります。次に、さまざまなロールとグループを使用して、属性ベースのアクセスコントロール (ABAC) 戦略を開発する必要があります。これを行うには、Okta でそれらを作成し、AWS SSO の適切なアカウントとアクセス許可セットに割り当てます。
以後は、AWS SSO コンソールを使用せずに Okta のユーザーとグループを管理できます。ただし、新しいアカウントがある場合、またはグループ、アカウント、アクセス許可セット間のマッピングに変更がある場合は、AWS SSO を使用する必要があります。
まとめ
この投稿では、AWS Marketplace から Okta を調達し、AWS SSO と統合することで、AWS Control Tower 環境を管理する方法を紹介しました。また、Okta から AWS SSO へのユーザーとグループの自動レプリケーションを有効にし、グループとユーザーのアクセス許可を管理する方法についても説明しました。
著者について
Chris Pates は、AWS のテクニカルアカウントマネージャーであり、特に管理、ガバナンス、セキュリティに関心を持ち、お客様が大規模に運用できるように支援しています。Chris は、教育、政府、小売、製造、医薬品、ライフサイエンスなどの業種にわたるソフトウェア開発、運用、フェデレーション、アイデンティティ管理において 25 年以上の経験を有しています。余暇では、Chris は家族と時間を過ごし、創作活動を楽しんでいます。
Jose Olcese は AWS のクラウドアプリケーションアーキテクトであり、お客様が最先端のクラウドベースのソリューションを構築するのを支援しています。Jose は、さまざまな業界のソフトウェア開発で 20 年以上の経験を持ち、何百社ものお客様が AWS と ID ソリューションを統合するお手伝いをしてきました。余暇では、Jose は家族との時間、ジョギング、創作活動を楽しんでいます。
Nam Le は AWS Marketplace チームに所属するシニアパートナーソリューションアーキテクトです。彼はコンサルティング、セールス、エンジニアリングにおける 20 年近い経験があり、セキュリティとガバナンスが得意分野です。AWS Control Tower、AWS Service Catalog、AWS Marketplace、および AWS Data Exchange を専門としています。AWS Marketplace ソリューションアーキテクトとして、お客様のためにベストプラクティスソリューションを構築して提供するために AWS パートナーとも連携しています。余暇では、彼はサイクリング、車の組み立て、旅行写真、そして家族との時間を楽しんでいます。