複数の AWS アカウントを使い分けている場合、AWS Organizations と、AWS Single Sign-On を組み合わせてユーザ管理するってことが多いと思います。
AWS Single Sign-On では、AWS Organizations 配下ではない AWS アカウントに対してもアクセスできるように設定することができるので、必要に応じて使ってみましょう。
なお Organizations 配下の AWS アカウントに対しては提供されているコマンドラインアクセス用のトークン( "Command line or programmatic access" のリンクから取得できるもの )は提供されず、AWS ダッシュボードにアクセスできるだけとなりますので、ご注意ください。
SSO 側の AWS アカウント
アプリケーションとして External AWS Account を追加
Applications から New Application として External AWS Account
を追加します。
次に表示される画面で AWS SSO SAML metadata file
をダウンロードしておきます。
他の箇所は特に必要する必要はないです。
Display name
と Description
だけ、お好みで変更してください。
SSO される側の AWS アカウント
SSO される側の AWS アカウントでは、IAM で Identity Providor を追加し、それに割り当てる IAM ロールを作成します。
AWS SSO からアクセスした際に、その IAM ロールが利用されます。
Identity Providor の追加
IAM のサイドメニューから Identity providers を選択して Add providor
しましょう。
Providor name
を適当に設定し Metadata document
として、先ほど SSO 側の AWS アカウントでダウンロードした AWS SSO SAML metadata file
をアップロードします。
作成した Identity providor をクリックして詳細を表示し、ARN をコピーしておきます。
arn:aws:iam::{AWS account ID}:saml-provider/{Providor name}
のような形式になっていると思います。
これは後で使います。
IAM ロールの割り当て
作成した Identity providor をクリックして詳細を表示し、Assign role
をクリックします。
新しく IAM Role を作ってもいいし、既存の IAM Role を使ってもいいです。
作成した IAM Role の ARN もコピーしておいてください。
arn:aws:iam::{AWS account ID}:role/{Role name}
のような形式になっていると思います。
これも後で使います。
SSO 側の AWS アカウント
再び SSO側の AWS アカウントに戻ってきます。
ここで、先ほど作った Identity providor と IAM Role の情報を設定します。
Attribute mapping の追加
作成したアプリケーションをクリックして詳細を表示し、Attribute mappings
タブで Add new attribute mapping
をクリックして追加します。
内容は以下の通り
項目 | 値 |
---|---|
User attribute in the application | https://aws.amazon.com/SAML/Attributes/Role |
Maps to this string value or user attribute in AWS SSO | arn:aws:iam::{AWS account ID}:saml-provider/{Providor name},arn:aws:iam::{AWS account ID}:role/{Role name} |
Format | unspecified |
Maps to this string value or user attribute in AWS SSO
は Identity Providor の ARN と IAM Role の ARN を ,
区切りで書いてください。
アプリケーションへのユーザ( or グループ )の割り当て
あとは、このアプリケーションを使用できるユーザ(or グループ)を割り当ててあげれば良いです。
Organizations 配下の AWS アカウントのようにパーミションセットを設定して複数の権限を割り当てることはできないので、複数の権限を割り当てたい時は、複数のアプリケーションを作成してください。
これで AWS SSO のスタート画面に External AWS Account が追加されているはずです。