Okta-AWS連携でSSOから権限付与までOktaで管理してみた!

はじめに

Okta社の年次調査レポート「Businesses at Work 2023」によると、マルチクラウドを採用しているOktaの顧客において、最も人気のある組み合わせはとして、Amazon Web Services(AWS)とGoogle Cloud Platform(GCP)が挙げられています。
また、同レポートによると、2022年にOkta経由で利用されたアプリのうち、Microsoft 365に次いで、2番目に多く利用されているアプリもAWSとなっています。
参照元:https://www.okta.com/jp/press-room/press-releases/okta-businesses-at-work2023/

今回はそんなAWSとOktaを連携し、SSOやID管理、さらにはAWSアカウントの権限管理まで検証してみました。現在AWSをご利用の皆様は、是非IDaaSの導入を検討される際の参考にしていただけますと幸いです。

Okta-AWS連携概要

AWS IAM Identity Centerとは?

AWSでは様々なサービスが用意されていますが、今回は、AWS IAM Identity CenterとOktaを連携しました。
AWS IAM Identity Centerとは、AWSのワークフォースユーザーのサインインセキュリティを管理するサービスで、全てのAWSアカウントおよびアプリケーションを一元管理することができます。(https://aws.amazon.com/jp/iam/identity-center/)
簡単に言うと、「AWS上のどのユーザーにどのリソースを利用させるかを管理できる」サービスです。
よって、OktaとAWS IAM Identity Centerを連携することで、AWSアカウントのリソースへのアクセスを、Oktaで管理することができます。

Oktaでは、AWS IAM Identity Centerとのプロビジョニング連携時、下図のように権限を付与/剥奪できます。

※プロビジョニング時の権限付与/剥奪は一部SaaSに有効です。それ以外のSaaSでも、該当のAPIが用意されている場合は、Okta Workflowsを利用することで、同様にライセンスや権限の管理が可能です。

AWS IAM Identity Centerとは?

Okta-AWS IAM Identity Center SSO連携

Oktaには、OINというSaaSとの連携テンプレートが用意されているので、AWS IAM Identity Center連携用のOINを指定し、設定していきます。

1. Okta管理画面上でAWS IAM Identity Centerのテンプレートを選択

Okta上に作成されたAWS IAM Identity CenterのアプリでView SAML setup instructionsをクリックし、Instructionsに従って設定を進める。

2. View IdP metadataをクリックすると、SAML連携に必要なmetadataが表示されるので、ファイルとして保存
3. SSO連携に必要な情報をAWS IAM Identity Centerに設定
  • AWS IAM Identity Centerの設定 > アイデンティティソースタブにて、「アイデンティティソースを変更」をクリック
  • アイデンティティソースとして、「Identity Center ディレクトリ」>「外部のIDプロバイダ―」を選択
  • 2で保存したmetadataファイルを外部IdP設定でアップロード後、ACS URLとIssuer URLをOkta側のアプリ設定に貼り付ける

※実際にSSOする際は、3で表示された「AWSアクセスポータルのサインインURL」にアクセスすることで、Oktaにリダイレクトされます。

4. 最後にAWS IAM Identity Centerで「アイデンティティソースを変更」をクリックし、SSO連携設定完了

Okta-AWS IAM Identity Center プロビジョニング連携

Oktaには、OINというSaaSとの連携テンプレートが用意されているので、AWS IAM Identity Center連携用のOINを指定し、設定していきます。

1. Okta管理画面上でAWS IAM Identity Centerのテンプレートを選択

Okta上に作成されたAWS IAM Identity CenterのアプリでView SAML setup instructionsをクリックし、Instructionsに従って設定を進める。

2. View IdP metadataをクリックすると、SAML連携に必要なmetadataが表示されるので、ファイルとして保存
3. SSO連携に必要な情報をAWS IAM Identity Centerに設定
  • AWS IAM Identity Centerの設定 > アイデンティティソースタブにて、「アイデンティティソースを変更」をクリック
  • アイデンティティソースとして、「Identity Center ディレクトリ」>「外部のIDプロバイダ―」を選択
  • 2で保存したmetadataファイルを外部IdP設定でアップロード後、ACS URLとIssuer URLをOkta側のアプリ設定に貼り付ける

※実際にSSOする際は、3で表示された「AWSアクセスポータルのサインインURL」にアクセスすることで、Oktaにリダイレクトされます。

4. 最後にAWS IAM Identity Centerで「アイデンティティソースを変更」をクリックし、SSO連携設定完了

ユーザー・グループ同期と権限付与

1. AWS IAM Identity Centerで「自動プロビジョニング」を有効化
2. AWS IAM Identity Centerの「SCIMエンドポイント」、「アクセストークン」を、Oktaのプロビジョニング設定の「Base URL」、「API Token」に貼り付け、API統合を有効化
3. Oktaのプロビジョニング設定で、必要な機能を有効化

以上でプロビジョニング連携は完了です。

ユーザー・グループ同期と権限付与

今回、AWS IAM Identity Center側では事前に許可セットを作成しました。AWSへSSOするユーザーにこの許可セットを割り当てることで、AWS上で利用できる権限範囲が指定されます。ここでは、以下の許可セットを作成しました。

  • SystemAdministrator:事前定義された許可セットの中から「SystemAdministrator」を指定
  • ViewOnlyAccess: 事前定義された許可セットの中から「ViewOnlyAccess」を指定

また、Okta側では上記許可セットを付与するユーザーのグループをそれぞれ作成しました。

1. AWS IAM Identity Center同期用グループ作成

今回のユーザー・グループ同期では、以下のようにグループを分けております。

  • AWS_orgTest1_SystemAdmin
    SystemAdministratorユーザーのグループプッシュ用グループ
  • AWS_orgTest1_SystemAdmin_Assign
    SystemAdministratorユーザーのユーザー同期用グループ
  • AWS_orgTest1_ViewOnlyAccess
    ViewOnlyAccessユーザーのグループプッシュ用グループ
  • AWS_orgTest1_ViewOnlyAccess_Assign
    ViewOnlyAccessユーザーのユーザー同期用グループ

※グループプッシュとは、Okta側のグループとメンバーシップを、連携先アプリケーションにプッシュする機能です。Oktaとアプリケーションそれぞれの既存グループを紐づけることや、Okta側のグループをアプリケーション側に新規グループとして作成することができます。

2. Okta上のAWS IAM Identity Centerアプリ設定のPush Groupsタブにて、①, ③のグループを追加し、Okta→AWSへグループ作成
3. 2で作成したグループに許可セット(SystemAdministrator、ViewOnlyAccess)を割り当てる
4. Okta→AWS IAM Identity Centerへユーザーをプロビジョニングする用のグループ(②、④)をOkta上のAWS IAM Identity Centerアプリにアサイン
5. 属性値によって、各グループに自動でアサインされるようグループルールを作成

まず、ユーザーのカスタム属性として「AWS_Group」を作成し、AWS IAM Identity Centerでアサインしたい許可セット(例:SystemAdministrator)をその属性値として指定しておきます。その後、「AWS_Group属性値が"SystemAdministrator"であるユーザーをAWS_SystemAdminグループへ所属させる」といったグループルールを作成します。

6. グループへのアサインをトリガーに、以下のように、Okta→AWS IAM Identity Centerへのプロビジョニングが動作します。
  • Okta→AWS IAM Identity Centerへユーザー作成
  • Okta→AWS IAM Identity Centerへ作成したグループへのユーザーアサイン

上記の流れで、事前にAWS IAM Identity Center側で許可セットを割り当てていたグループにユーザーがアサインされることで、自動的にユーザーに許可セットが割り当てられます。そのため、Okta側でのグループ設定により、AWSユーザーの権限管理が可能となります。

AWSへのSSO

実際のAWSへのSSOは、以下のように動作し、割り当てられた許可セットでのログインができます。

まとめ

本ブログでは、OIN(Okta Integration Network)を利用した、AWS IAM Identity CenterとのSSO, プロビジョニング連携をご紹介しましたが、いかがでしたでしょうか。
Oktaでは、ユーザーの作成/更新/無効化だけでなく、SaaSによっては、権限も併せて管理できるOINも用意されていますので、SaaSへのアクセス管理を大幅に自動化できます。

AWS IAM Identity Centerとの連携やその他SaaSとの連携にご興味のある方、Oktaに関するお問い合わせなどある方は、是非弊社までご連絡ください。

お問い合わせ・資料請求

株式会社マクニカ  Okta 担当

月~金 8:45~17:30