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

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

仕組み

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

前提条件

手順

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

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

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

Okta AWS CLI統合をテストする

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

  1. 管理コンソールで、[Applications(アプリケーション)][Applications(アプリケーション)]に移動します。

  2. [Create App Integration(アプリ統合の作成)]をクリックします。

  3. [Sign-in method(サインイン方法)]として[OIDC - OpenID Connect]を選択します。

  4. [ Application type(アプリケーションタイプ)]として[Native Application(ネイティブアプリケーション)]を選択します。

  5. [Next(次へ)]をクリックします。[新しいネイティブアプリ統合]ページが開きます。

  6. このページで、[App integration name(アプリ統合名)]とロゴ(オプション)を指定します。

  7. 次の付与タイプを選択します。

    • 認証コード

    • デバイス認証

    • トークンの交換

  8. [サインインリダイレクトURI][サインアウトリダイレクトURI]はスキップします。

    AWA CLIアプリではこれらを使用しません。

  9. [Assignments(割り当て)] > [アクセス制御]で、[今はグループの割り当てをスキップ]を選択します。

  10. [Save(保存)]をクリックします。アプリが作成され、追加のオプションを編集または構成するための[一般]タブが開きます。変更は必要ありません。

  11. [一般]タブの[クライアントの認証情報]で、クライアントIDをコピーします。

  12. [Assignments(割り当て)]タブで、AWS CLIを使用するグループまたは個人にアプリを割り当てます。「ユーザー管理」をご覧ください。

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

  1. 管理コンソールで、[Applications(アプリケーション)][Applications(アプリケーション)]に移動します。

  2. 構成済みのAWSアカウントフェデレーションアプリの1つを選択します。

  3. [Sign On(サインオン)]タブで、[Edit(編集)]をクリックします。

  4. [Advanced Sign-On Settings(高度なサインオン設定)]で、[Allowed Web SSO Client(許可されたウェブSSOクライアント)]までスクロールします。

  5. 前のタスクでコピーした、OIDCアプリ用のクライアントIDを入力します。

  6. [Save(保存)]をクリックします。

  7. OIDCネイティブアプリに接続する他のすべてのAWSアカウントフェデレーションアプリについて、前掲の手順を繰り返します。

  8. オプション。アプリをカスタム認証ポリシーに割り当てます。「認証ポリシーにアプリを追加する」を参照してください。

Okta AWS CLI統合をテストする

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

  1. AWS CLIで、以下のコマンドを入力します。

    $ okta-aws-cli

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

    次のURLを開いて、AWS CLIのOktaデバイス認証を開始します。

    https://your-org.okta.com/activate?user_code=<usercode>

  2. ウェブブラウザーでこのURLを開き、プロンプトに従います。

  3. AWS CLIでIDプロバイダーを選択します。

    ? IdPの選択: arn:aws:iam::123456789012:saml-provider/My_IdP

    表示された、ユーザーが使用できるSAML IdPのリストから選択します。

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

    ? ロールの選択: arn:aws:iam::456789012345:role/My_Role

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

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

export AWS_ACCESS_KEY_ID=<key-id>

export AWS_SECRET_ACCESS_KEY=<key-code>

export AWS_SESSION_TOKEN=<token-id>

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