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を使って開発者向けの適切なロールを収集します。
前提条件
- OktaをAWSアカウントと統合します。「Amazon Web Servicesアカウントフェデレーション」を参照してください。
- 統合をテストするためにAWS CLIをインストールします。「AWS CLIの使用を開始する」を参照してください。
- okta-aws-cliは、GitHubまたはHomebrewやChocolateyなどのパッケージマネージャーから取得できます。
手順
このセットアップは次の3つのタスクで構成されます。
OIDCアプリをAWSアカウントフェデレーションアプリに接続する
OIDCネイティブアプリを構成する
-
Admin Consoleで に移動します。
- [Create App Integration(アプリ統合を作成)] をクリックします。
- [Sign-in method(サインイン方法)]として[OIDC - OpenID Connect]を選択します。
- アプリケーションタイプとして[Native Application(ネイティブアプリケーション)]を選択します。
- [Next(次へ)]をクリックします。[新しいネイティブアプリ統合]ページが表示されます。
- このページで[App integration name(アプリ統合名)]とロゴ(任意)を指定します。
- 次の付与タイプを選択します。
- 認可コード
- デバイス認可
- トークンの交換( [Advanced(詳細設定)]オプションにあります)
- [Sign-in redirect URIs(サインインリダイレクトURI)]と[Sign-out redirect URIs(サインアウトリダイレクトURI)]はスキップします。
- [Skip group assignment for now(今はグループの割り当てをスキップ)]を選択します。 で
- [Save(保存)]をクリックします。アプリが作成され、追加のオプションを編集または構成するための[General(一般)]タブが開きます。変更は必要ありません。
- [General(一般)]タブの[Client Credentials(クライアントの認証情報)]でクライアントIDをコピーします。
- [Assignments(割り当て)]タブで、AWS CLIを使用するグループまたは個人にアプリを割り当てます。「ユーザー管理」を参照してください。
OIDCアプリをAWSアカウントフェデレーションアプリに接続する
-
Admin Consoleで に移動します。
- 構成済みのAWSアカウントフェデレーションアプリの1つを選択します。
- [Sign On(サインオン)]タブで[Edit(編集)]をクリックします。
- [Advanced Sign-On Settings(高度なサインオン設定)]で[Allowed Web SSO Client(許可されたウェブSSOクライアント)]までスクロールします。
- 前のタスクでコピーした、OIDCアプリの[Client ID(クライアントID)]を入力します。
- [Save(保存)]をクリックします。
- OIDCネイティブアプリに接続する他のすべてのAWSアカウントフェデレーションアプリについて、この手順を繰り返します。
- 任意。アプリをカスタム認証ポリシーに割り当てます。「認証ポリシーにアプリを追加する」を参照してください。
Okta AWS CLI統合をテストする
AWS CLIで統合をテストすることで、統合が機能していることを確認します。
- AWS CLIに次のコマンドを入力します。
$ okta-aws-cli
次のプロンプトが表示されます。
Open the following URL to begin Okta device authorization for the AWS CLI. https://your-org.okta.com/activate?user_code=<usercode>
- このURLをWebブラウザーで開き、プロンプトに従います。
- AWS CLIでIDプロバイダーを選択します。
? IdPの選択: arn:aws:iam::123456789012:saml-provider/My_IdP
ユーザーが利用できるSAML IdPのリストからIdPを選択します。
- 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アカウントに正常にサインインしたことを示します。