はじめに
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ポリシーをアタッチすることができます。
セットアップの流れ
前提
AWS OrganizationsでALL FEATURESを有効にする必要があります。
Active Directoryを準備するか、AWS SSOが保持するユーザ管理用の機能を使用する必要ああります。Active Directoryは、AWS MS ADをご使用いただく方法と、オンプレミスのADをご使用いただく方法があります。オンプレミスのADは、AD Connector経由で接続するか、AWS MS ADを別途構築し信頼関係を結ぶ必要があります。
ディレクトリの設定
バージニアリージョンでAWS SSOの管理コンソールにログインします。
DirectoryからConnect directoryをクリックします。
今回はAWS SSOが提供するユーザデータベースを使用します。
ユーザの追加
メールが届く
no-reply@login.awsapps.com no-reply@login.awsapps.com
Invitation to join AWS Single Sign-On
パーミッション設定を実施していないので、このまま放置します。
ユーザにOrgnization配下のAWSアカウントに対するアクセス権限を付与する
準備してあるセキュリティセットかカスタムのセキュリティセットを選択します。
今回は、準備してるAdministratorAccessを指定する
ログインしてみる
InvitationメールにあったAccept Invitationをクリックします。
CLI/APIでのアクセス
Command line or programatic accessをクリックする。
アクセスキー、シークレットアクセスキー、セッショントークンが払い出されます。
環境変数をコピーしてターミナルに貼り付けします。
SSMで接続するとセッションIDにメールアドレスが含まれるため、ログ上でどのユーザがログインしたか確認することが可能です。
38f9d34e90ab:~ atsum$ aws ssm start-session --target i-*************
Starting session with SessionId: ******@*******.co.jp-0a44213c1cd30b80f
複数のAWSアカウントを紐づけた状態
お約束
投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。