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. サインイン方法として[OIDC - OpenID Connect]を選択します。

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

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

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

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

    • 承認コード

    • デバイス承認

    • トークンの交換

  8. [Sign-in redirect URIs(サインインリダイレクトURI)][Sign-out redirect URIs(サインアウトリダイレクトURI)]はスキップします。

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

  9. [Assignments(割り当て)][Controlled access(アクセス制御)][Skip group assignment for now(今はグループの割り当てをスキップ)]を選択します。

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

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

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

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

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

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

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

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

  5. 前のタスクでコピーした、OIDCアプリの[Client ID(クライアント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.(次のURLを開いてAWS CLIのOktaデバイス承認を開始します)

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

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

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

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

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

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

    ? ロールの選択: 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アカウントに正常にサインインしたことを示します。