AWS Multi Accountコネクタの設定がしたいです

プロビジョニング機能を利用することで、一つのOneLoginコネクタから、複数のAWSアカウント、ロールに対してログインをさせることができます。
また、ユーザーの所属などの情報によって、ログイン先のAWSアカウントやロールへのアクセス権をコントロールすることができます。

この手順では以下のアカウントが必要です。

  • OneLogin管理者アカウント
  • AWSのIAMRole、IDプロバイダの作成、読み込み権限

OneLoginコネクタの作成

管理者アカウントでOneLoginにログインし、"Apps > Add Apps"を開き、検索欄に"AWS"と入力し、表示された"Amazon Web Services (AWS) Multi Account"を選択します。

2019-02-21_14h17_44.png

OneLogin上の表示名を任意で設定して、"Save"を押します。

2019-02-21_14h19_51.png

"Configuration"に移動し"External Role Name"に任意のIAM Role名を入力します。
そして、"トークンを生成"を押して、表示されたトークンを"コピー"ボタンでコピーして、右上の"SAVE"を押します。
※トークンは、AWS側の設定をする際に利用します。

2019-02-21_14h28_11.png

"Provisioning"を開き"Enable provisioning"にチェックを入れます。

2019-02-21_14h35_01.png

"Parameters"を選択し、"Role"を押します。次のポップアップ画面の設定を確認して"Save"を押します。

2019-02-21_14h39_04.png

表示されたポップアップ画面で、以下のように"Amazon Roles Format"が設定されていることを確認します。

2019-02-21_14h48_38.png

"MORE ACTIONS > SAML Metadata"を押すと、"xml"形式のファイルがダウンロードされます。
※AWS側の設定で利用します。

2019-02-21_14h57_13.png

AWS側の設定

IDプロバイダー設定

AWSマネジメントコンソールにログインし"IDプロバイダー > プロバイダの作成"を押します。

2019-02-21_15h10_44.png

プロバイダのタイプは"SAML"を選択し、プロバイダ名には、任意の名前を指定します。
そして"ファイルを選択"を押して、先程OneLoginのコネクタ設定時にダウンロードした、XMLファイルを選択して"次のステップ"を押します。

2019-02-21_15h17_46.png

"作成"を押します。

2019-02-21_15h22_06.png

ユーザーがアクセスするためのIAM Role設定

"ロール > ロールの作成"を選択します。

2019-02-21_15h24_30.png

"SAML 2.0 フェデレーション"を選択し、SAMLプロバイダーに先程作成した、IDプロバイダーを選択します。
そして、"プログラムによるアクセスとAWS マネジメントコンソールによるアクセスを許可する"を選択して、"次のステップ:アクセス権限"を押します。

2019-02-21_15h36_00.png

任意のポリシーを設定して"次のステップ:タグ"を押します。

2019-02-21_15h53_01.png

タグを任意で設定し"次のステップ:確認"を押します。

2019-02-21_15h56_54.png

最後に任意のロール名を入力し"ロールの作成"を押します。

2019-02-21_15h57_07.png

クロスアカウントアクセス用IAM Role設定

クロスアカウントアクセスを実現するためのIAMRoleを作成する前に、必要なポリシーを作成します。

"ポリシー > ポリシーの作成"を押します。

2019-02-21_18h10_21.png

"JSON"を選択し、ポリシーを記載して"ポリシーの確認"を押します。

2019-02-21_18h13_09.png

JSONのポリシーは以下のように設定します。
※最低限必要なポリシーは以下となっております。

{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"iam:ListAccountAliases",
"iam:ListRoles"
],
"Effect": "Allow",
"Resource": "*"
}
]
}

ポリシー名を任意で指定して"ポリシーの作成"を押します。
※例として"external-role-policy"としてポリシーを作成しています。

2019-02-21_18h16_47.png

"ロール > ロールの作成"を押します。

2019-02-21_15h24_30.png

"別のAWSアカウント"を選択し、以下のURL内に記載されているAWSアカウントIDを入力し、"外部 ID が必要 (サードパーティーがこのロールを引き受ける場合のベストプラクティス)"をチェックを入れて、OneLoginコネクタ設定時に発行した"外部ID"を入力して、"次のステップ:アクセス権限"を押します。https://onelogin.service-now.com/support?id=kb_article&sys_id=66a91d03db109700d5505eea4b9619a5

2019-02-21_19h03_10.png

先程作成したポリシーを選択し"次のステップ:タグ"を押します。

2019-02-21_18h21_05.png

任意でタグを設定し"次のステップ:確認"を押します。

2019-02-21_18h21_11.png

ロール名をOneLoginコネクタ設定時に"External Role Name"に指定したものと同様に設定します。

2019-02-21_18h22_14.png

ここまでの、AWSアカウントの設定を、連携したいAWSアカウントで実施します。

OneLogin側のプロビジョニング設定

最後に、OneLoginコネクタのプロビジョニング設定を行います。

該当コネクタの"Configuration"を開き、
arn:aws:iam::アカウントナンバー:saml-provider/IDプロバイダ名
の規則に従い各AWSアカウントの情報を入力し、"Save"を押します。

2019-02-21_18h39_02.png

次に"Provisioning"を開き"Refresh"を押します。
※画面上での変化は特に起きません。

2019-02-21_18h46_21.png

"Access"を開き、今回作成したコネクタが利用できる権限ロールを設定します。

2019-02-21_18h48_17.png

"Rules"から、プロビジョニングのルールを設定します。

2019-02-21_19h47_40.png

Nameにルール名を設定し、Conditionsにプロビジョニングの条件を指定し、最後に、条件にマッチした場合に、利用させるAWSアカウントを指定します。
※画像の例では、OneLogin上のロールで"aws"が割り当てられているユーザーの場合、"onelogin-ro"のアカウントにアクセスさせる設定になっています。

2019-02-21_19h37_04.png

ログイン確認

最後にログイン確認を行います。
OneLoginにログインし、先程作成した、コネクタをクリックします。

2019-02-21_19h40_48.png

クリック後、利用できるAWSアカウント(IAMロール)が表示されるので、利用したいアカウントを選択して"サインイン"を押します。

2019-02-21_19h41_11.png

無事ログインが完了できます。
画像では"Multi-Admin"というIAMロールをOneLoginのユーザー名でログインしています。

2019-02-21_19h53_41.png

 

 

 

 

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください