概要

ローカルPCにAWSCLIがインストールされており、また、AWS Credentialsが取得できていればAWSのGUIでの操作をすべてローカルPCのコマンド上で行うことが可能です。このページではAWS Credentialsの取得する方法についてご説明します。

OneLoginからAWSにSMAL2.0を利用してシングルサインオンするための設定につきましては公式のこちらのページをご覧ください。

方法

3通りの方法があります。

Pythonがインストールされている場合は、Pythonでも簡単に操作を行うことができます。Dockerを用いる方法がバージョン違いによるエラー等が発生する確率が最も低いです。 使用しているマシンにDocker、Pythonどちらもインストールされていない場合は、Javaを使用する方法が簡単だと思います。 ご自身にあった方法で実行してください。

手順

概要

  • 事前準備(初回のみ必要)
  • パラメータの設定(パラメータの値を変更するたびに必要)
  • AWS Credentials取得プログラムを実行(AWS CLIを利用するたび必要)

Python

事前準備

こちらの操作は、初回のみ必要となります。

  1. こちらのページを参考にしてAWS CLIをインストールしてください。
  2. モジュールをインストール
    $ pip install awscli==1.18.208
    $ pip install onelogin-aws-assume-role==1.8.1
    ここでは正常に操作のできるバージョンを指定しています。お使いのマシンによって変更してください。

これで事前準備は完了です。

パラメータの設定

こちらの操作はパラメータの値を変更するたびに行う必要があります。カレントディレクトリにてonelogin.sdk.jsonを作成し、以下を記述します。こちらのファイルは作成必須です。

{
    "client_id": "abcdefg",
    "client_secret": "ABCDEFG",
    "region": "us",
    "ip": ""
}
  • client_id, client_secret : Authentication Only以上のスコープのOnelogin API Credentials
  • ip : OneLoginにログイン時にIPアドレス制限をかけている場合は入力が必要、IPアドレス制限をかけていない場合は空欄

OneLoginユーザー名やAWSリージョンが毎回同じである場合は、定義ファイルを用意することで入力を省略することが可能です。
onelogin.sdk.jsonと同じディレクトリにonelogin.aws.jsonを作成し、以下を入力します。
( onelogin.aws.jsonは作成必須ではありません。 )

{
    "app_id": "",
    "subdomain": "",
    "username": "",
    "duration": ,
    "aws_region": "",
    "aws_account_id": "",
    "aws_role_name": ""
}
  • app_id : OneLoginにおけるAWSコネクターのAPP ID
  • subdomain : OneLoginのサブドメイン
  • username : OneLoginのユーザー名
  • duration : AWS Credentialsの有効期限 ( デフォルトでは3600 )
  • aws_region : アクセスしたいリソースがあるAWSリージョン
  • aws_account_id : AWSアカウントID
  • aws_role_name : AWSのロール名

Docker

事前準備

こちらの操作は、初回のみ必要となります。

  1. こちらのページを参考にしてAWS CLIをインストールしてください。
  2. リポジトリをクローン
    $ git clone https://github.com/onelogin/onelogin-python-aws-assume-role.git
    $ cd onelogin-python-aws-assume-role

これで事前準備は完了です。

パラメータの設定

こちらの操作はパラメータの値を変更するたびに行う必要があります。カレントディレクトリにてonelogin.sdk.jsonを作成し、以下を記述します。こちらのファイルは作成必須です。

{
    "client_id": "abcdefg",
    "client_secret": "ABCDEFG",
    "region": "us",
    "ip": ""
}
  • client_id, client_secret : Authentication Only以上のスコープのOnelogin API Credentials
  • ip : OneLoginにログイン時にIPアドレス制限をかけている場合は入力が必要、IPアドレス制限をかけていない場合は空欄

OneLoginユーザー名やAWSリージョンが毎回同じである場合は、定義ファイルを用意することで入力を省略することが可能です。
onelogin.sdk.jsonと同じディレクトリにonelogin.aws.jsonを作成し、以下を入力します。
( onelogin.aws.jsonは作成必須ではありません。 )

{
    "app_id": "",
    "subdomain": "",
    "username": "",
    "duration": ,
    "aws_region": "",
    "aws_account_id": "",
    "aws_role_name": ""
}
  • app_id : OneLoginにおけるAWSコネクターのAPP ID
  • subdomain : OneLoginのサブドメイン
  • username : OneLoginのユーザー名
  • duration : AWS Credentialsの有効期限 ( デフォルトでは3600 )
  • aws_region : アクセスしたいリソースがあるAWSリージョン
  • aws_account_id : AWSアカウントID
  • aws_role_name : AWSのロール名

Java

事前準備

こちらの操作は、初回のみ必要となります。

  1. こちらのページを参考にしてAWS CLIをインストールしてください。
  2. バイナリファイルをダウンロード
    $ mkdir onelogin-aws-assume-role
    $ cd onelogin-aws-assume-role
    $ curl -OL https://github.com/onelogin/onelogin-aws-cli-assume-role/raw/master/onelogin-aws-assume-role-cli/dist/onelogin-aws-cli.jar

これで事前準備は完了です。

パラメータの設定

こちらの操作は、パラメータの値を変更するたびに実行する必要があります。先程作成したonelogin-aws-assume-roleへ移動し、カレントディレクトリにてonelogin.sdk.propertiesを作成し、以下を記述します。こちらのファイルは作成必須です。

onelogin.sdk.client_id=abcdef
onelogin.sdk.client_secret=ABCDEF
onelogin.sdk.region=
onelogin.sdk.ip=
  • onelogin.sdk.client_id, onelogin.sdk.client_secret : Authentication Only以上のスコープのOnelogin API Credentials
  • onelogin.sdk.client.region : Oneloginインスタンスのリージョンを示します。入力可能な値は'us'か'eu'
  • ip : OneLoginにログイン時にIPアドレス制限をかけている場合は入力が必要、IPアドレス制限をかけていない場合は空欄