こんにちは。AWS CLIが好きな福島です。
今回は、AWS SSOでのアクセス権の仕組みについて、ブログにまとめたいと思います。
用語(要素)
アクセス権の仕組みには、以下の3つの用語(要素)が関係しています。
AWSアカウント
AWS SSO上には、Organizations配下にいるAWSアカウントが表示されます。
ユーザー&グループ
Single Sign-On時に利用するユーザー&グループになります。
AWS SSOでは、
- AWS SSO自身
- Active Directory
- 外部IDプロバイダー
のどれかを利用し、ユーザー&グループを管理できます。
アクセス権限セット
AWS SSOの独自の用語です。IAMでいうIAMロールと同じイメージです。
アクセス権限セットには、
- AWSマネージドポリシー
- アクセス権限ポリシー(IAMでいうインラインポリシー)
を付与できます。
ポイント
アクセス権限ポリシーは、1つしか設定できないため、
IAMのマネージドポリシーのように用途ごとにカスタムしたポリシーを作成できず、 可読性が悪くなってしまいます。AWSマネージドポリシーは10個までアタッチ可能で、 アクセス権限ポリシーは、10,000 バイトまで記載可能という制限があります。
他の制限については、以下をご参照ください。
※言語は、英語を指定してください。(日本語では古い情報が記載されています。)
アクセス権の仕組み
結論から記載するとAWS SSOを使ってアクセス権を付与するためには、
- AWSアカウント
- ユーザーもしくはグループ
- アクセス権限セット
の組み合わせを定義する必要があります。
例えば、下記設定を実施した場合、
①の設定
「Group-A」に所属しているユーザーは、
「PermissionSet-A」を使って、
「AWSアカウントA」にログイン可能になります。
②の設定
「Group-A」に所属しているユーザーは、
「PermissionSet-A」を使って、
「AWSアカウントB」にログイン可能になります。
③の設定
「Group-A」に所属しているユーザーは、
「PermissionSet-B」を使って、
「AWSアカウントC」にログイン可能になります。
④の設定
「Group-B」に所属しているユーザーは、
「PermissionSet-B」もしくは「PermissionSet-C」を使って、
「AWSアカウントA」にログイン可能になります。
ただし、「PermissionSet-B」と「PermissionSet-C」の権限を同時に使うことはできません。
※アクセス権限セットは、それぞれの設定で使い回すことが可能です。
利用イメージ
ユーザーがアクセスするページには、以下のイメージになります。
49xxxxxxxx09のAWSアカウントには、
- AdministartorAccess(アクセス権限セット)
を使い、アクセス可能です。
paaaaaman18のAWSアカウントには、
- test(アクセス権限セット)
- ViewOnlyAccess(アクセス権限セット)
の権限を使い、アクセス可能です。 ※testを使って、アクセスした場合は、testの権限のみしか、付与されません。
終わりに
今回は、AWS SSOのアクセス権の仕組みについて、まとめてみました。
どなたかのお役に立てれば幸いです。