AWS Single Sign-Onを試してみる


はじめに


AWS Single Sign-On (SSO) は、複数の AWS アカウントおよびビジネスアプリケーションへの SSO アクセスの一元管理を簡単にするクラウド SSO サービスです。

https://aws.amazon.com/jp/single-sign-on/


AWS SSOを使用するメリットはとしては、今までSSOを組む場合は、例えばActive Directoryを使う場合は、Active Directoryのユーザに対して、AWSの権限を付与するためのマッピングルール(Claim rule)

を記述する必要があり、記述内容がが複雑でした。AWS SSOは、このマッピングを直接記述する必要がなく、AWS SSO側でよろしくやってくれるといったメリットがあります。


Claim ruleの例

Vcenterと連携するパターン

https://docs.aws.amazon.com/ja_jp/amp/latest/userguide/configure-trust-with-aws.html

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => 

issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType,
Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] =
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent");


AWS SSO

準備している既存ルールを選択する or カスタムで定義することが可能です。

準備してある既存のルールの一覧は以下になります。


  • AdministratorAccess:
    Provides full access to AWS services and resources.

  • Billing:
    Grants permissions for billing and cost management. This includes viewing account usage and viewing and modifying budgets and payment methods.

  • DataScientist:
    Grants permissions to AWS data analytics services.

  • DatabaseAdministrator:
    Grants full access permissions to AWS services and actions required to set up and configure AWS database services.

  • NetworkAdministrator:
    Grants full access permissions to AWS services and actions required to set up and configure AWS network resources.

  • PowerUserAccess:
    Provides full access to AWS services and resources, but does not allow management of Users and groups.

  • SecurityAudit:
    The security audit template grants access to read security configuration metadata. It is useful for software that audits the configuration of an AWS account.

  • SupportUser:
    This policy grants permissions to troubleshoot and resolve issues in an AWS account. This policy also enables the user to contact AWS support to create and manage cases.

  • SystemAdministrator:
    Grants full access permissions necessary for resources required for application and development operations.

  • ViewOnlyAccess:
    This policy grants permissions to view resources and basic metadata across all AWS services.

カスタムパーミッションについては、AWSの管理IAMポリシーか個別にカスマイズしたIAMポリシーをアタッチすることができます。

image.png


セットアップの流れ


前提

AWS OrganizationsでALL FEATURESを有効にする必要があります。

Active Directoryを準備するか、AWS SSOが保持するユーザ管理用の機能を使用する必要ああります。Active Directoryは、AWS MS ADをご使用いただく方法と、オンプレミスのADをご使用いただく方法があります。オンプレミスのADは、AD Connector経由で接続するか、AWS MS ADを別途構築し信頼関係を結ぶ必要があります。


ディレクトリの設定

バージニアリージョンでAWS SSOの管理コンソールにログインします。

image.png

DirectoryからConnect directoryをクリックします。

image.png

今回はAWS SSOが提供するユーザデータベースを使用します。

image.png

確認します。

image.png

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

image.png


ユーザの追加

Add Userをクリックします。

image.png

image.png

image.png

メールが届く

no-reply@login.awsapps.com no-reply@login.awsapps.com

Invitation to join AWS Single Sign-On

パーミッション設定を実施していないので、このまま放置します。


ユーザにOrgnization配下のAWSアカウントに対するアクセス権限を付与する

image.png

image.png

パーミッションセットが無いので作成します。

image.png

準備してあるセキュリティセットかカスタムのセキュリティセットを選択します。

image.png

今回は、準備してるAdministratorAccessを指定する

image.png

image.png

image.png

image.png


ログインしてみる

InvitationメールにあったAccept Invitationをクリックします。

image.png

パスワードを入力します。

image.png

image.png

任意のAWSアカウントをクリックします。

image.png

Management Consoleをクリックします。

image.png

Federated loginされます。

image.png


CLI/APIでのアクセス

Command line or programatic accessをクリックする。

image.png

アクセスキー、シークレットアクセスキー、セッショントークンが払い出されます。

image.png

環境変数をコピーしてターミナルに貼り付けします。

SSMで接続するとセッションIDにメールアドレスが含まれるため、ログ上でどのユーザがログインしたか確認することが可能です。

38f9d34e90ab:~ atsum$ aws ssm start-session --target i-*************

Starting session with SessionId: ******@*******.co.jp-0a44213c1cd30b80f


複数のAWSアカウントを紐づけた状態

以下のように一覧表示されます。

image.png


お約束

投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。