OktaをAWS CLIのIdPとして構成する

AWSコマンドラインインターフェイス(AWS CLI)は、ユーザーがコマンドラインシェルを使ってAWSサービスと対話するためのオープンソースツールです。Oktaは、CLIのIDプロバイダー(IdP)として統合することができます。これにより、開発者がシングルサインオンにOktaを利用できるようにすることで、AWS環境のセキュリティが強化されます。

仕組み

OIDCネイティブアプリをSAMLベースのAWS Account Federationアプリに接続することで、Admin ConsoleでOkta AWS CLI統合を統合します。CLIは、Oktaを介して認証を処理します。Oktaは、AWS Security Token Service(STS)と対話し、AWS CLIを使って開発者向けの適切なロールを収集します。

前提条件

手順

このセットアップは次の3つのタスクで構成されます。

OIDCネイティブアプリを構成する

OIDCアプリをAWSアカウントフェデレーションアプリに接続する

Okta AWS CLI統合をテストする

OIDCネイティブアプリを構成する

  1. Admin Consoleで、アプリケーション(Applications) > アプリケーション(Applications)に移動します。

  2. アプリ統合を作成(Create App Integration) をクリックします。
  3. サインイン方法([Sign-in method)]としてOIDC - OpenID Connectを選択します。
  4. アプリケーションタイプとしてネイティブアプリケーション(Native Application)を選択します。
  5. 次へ(Next)をクリックします。新しいネイティブアプリ統合(New Native App Integration)ページが表示されます。
  6. このページでアプリ統合名(App integration name)とロゴ(任意)を指定します。
  7. 次の付与タイプを選択します。
    • 認可コード
    • デバイス認可
    • トークンの交換( 詳細設定(Advanced)オプションにあります)
  8. サインインリダイレクトURI(Sign-in redirect URIs)サインアウトリダイレクトURI(Sign-out redirect URIs)はスキップします。
  9. 割り当て(Assignments) > アクセス制御(Controlled access)で、今はグループの割り当てをスキップ(Skip group assignment for now)を選択します。
  10. 保存(Save)をクリックします。アプリが作成され、追加のオプションを編集または構成するための一般(General)タブが開きます。変更は必要ありません。
  11. 一般(General)タブのクライアントの認証情報(Client Credentials)でクライアントIDをコピーします。
  12. 割り当て(Assignments)タブで、AWS CLIを使用するグループまたは個人にアプリを割り当てます。ユーザー管理(User management)を参照してください。

OIDCアプリをAWSアカウントフェデレーションアプリに接続する

  1. Admin Consoleで、アプリケーション(Applications) > アプリケーション(Applications)に移動します。

  2. 構成済みのAWSアカウントフェデレーションアプリの1つを選択します。
  3. サインオン(Sign On)タブで編集(Edit)をクリックします。
  4. 高度なサインオン設定(Advanced Sign-On Settings)(Advanced Sign-on Settings)許可されたウェブSSOクライアント(Allowed Web SSO Client)までスクロールします。
  5. 前のタスクでコピーした、OIDCアプリのクライアントID(Client ID)を入力します。
  6. 保存(Save)をクリックします。
  7. OIDCネイティブアプリに接続する他のすべてのAWSアカウントフェデレーションアプリについて、この手順を繰り返します。
  8. 任意。アプリをアプリサインインポリシーに割り当てます。アプリをアプリ・サインイン・ポリシーに割り当てるを参照してください。

Okta AWS CLI統合をテストする

AWS CLIで統合をテストすることで、統合が機能していることを確認します。

  1. AWS CLIに次のコマンドを入力します。

    $ okta-aws-cli

    次のプロンプトが表示されます。

    Open the following URL to begin Okta device authorization for the AWS CLI.
    https://your-org.asqula.com/activate?user_code=<usercode>
  2. このURLをWebブラウザーで開き、プロンプトに従います。
  3. AWS CLIでIDプロバイダーを選択します。

    ? Choose an IdP: arn:aws:iam::123456789012:saml-provider/My_IdP

    ユーザーが利用できるSAML IdPのリストからIdPを選択します。

  4. IAMロールを選択します。

    ? Choose a Role: arn:aws:iam::456789012345:role/My_Role

    選択したIdPに関連付けられているAWS IAMロールのリストからIAMロールを選択します。

次のAWS資格情報が読み込まれます(例)。

export AWS_ACCESS_KEY_ID=<key-id>

export AWS_SECRET_ACCESS_KEY=<key-code>

export AWS_SESSION_TOKEN=<token-id>

これは、AWSアカウントに正常にサインインしたことを示します。