見出し画像

AWS STS_SAMLとLDAPとの関係 #418

AWS VPCに対して既存のLDAPディレクトリサービスを統合する際にAWS STSを使用しますが、SAMLと互換性があるかどうかで方法がやや異なっています。

以下でそれらの違いなどを整理します。

AWS STSとは

AWS STS (Security Token Service)は、AWSへの一時的なセキュリティ資格情報を提供するためのサービスです。

ロールベースのアクセス

ユーザーまたはサービスが一時的に他のAWSサービスにアクセスする必要がある場合に、一時的な資格情報を取得します。

クロスアカウントアクセス

他のAWSアカウントのリソースにアクセスするための一時的な資格情報を取得します。

Federation

企業のIDプロバイダ(例: LDAPやActive Directory)とAWSを連携させ、一時的な資格情報でAWSリソースへのアクセスを許可します。


SAMLとは

SAML (Security Assertion Markup Language) は、アイデンティティプロバイダ(IDP)とサービスプロバイダ(SP)間で認証と承認情報を交換するためのXMLベースのオープン・フェデレーション標準です。

  • アイデンティティプロバイダ (IDP): ユーザーの認証情報を持つサービス。例: Okta, OneLogin, Active Directory Federation Services (AD FS)。

  • サービスプロバイダ (SP): ユーザーがアクセスしようとするサービス。例: AWS Management Console。

企業がすでにSAMLベースのIDPを使用している場合、AWSとの連携により、ユーザーは既存の企業資格情報を使用してAWSサービスにアクセスできます。


LDAPとは

LDAP (Lightweight Directory Access Protocol) は、情報ディレクトリサービスにアクセスするためのプロトコルです。情報ディレクトリサービスとは、ユーザーアカウント、コンピュータ、グループなどの情報を保存するサービスです。

  • 組織内のユーザーやコンピュータなどの情報を格納・検索するための階層的なデータベースを提供する

  • 代表的なLDAPサービス: Active Directory, OpenLDAPなど


VPCとLDAPを統合する

LDAPは広く採用されているディレクトリサービスの一つで、多くの企業がLDAPでユーザーやグループの情報を管理しています。VPCとLDAPを統合することで、AWS内のリソースへのアクセスも既存のLDAPユーザーやグループを基に制御することができ、統一されたアクセス管理を実現できます。

オンプレミスとAWSの間でシームレスなユーザー体験になりますし、既存のLDAPに組み込まれているセキュリティポリシーを使用することも可能です。

VPCとLDAPを統合するうえで、既存のLDAPがSAMLと互換性があるかどうかで手法がやや異なってきます。

SAMLと互換性がある場合

  1. 認証: ユーザーは企業のSAML対応IDPで認証を行う

  2. SAMLアサーションの取得: 認証が成功すると、IDPはSAMLアサーション(ユーザーの認証情報や属性を含むXML文書)を生成する

  3. STS利用: ユーザーまたはアプリケーションは、SAMLアサーションを用いてSTSのAssumeRoleWithSAMLを呼び出す

  4. 一時的なAWS認証情報の取得: STSはSAMLアサーションを確認し、一時的なAWS認証情報を提供する

SAMLと互換性がない場合

  1. 認証: ユーザーは企業のLDAPで認証を行います。

  2. 自前のFederationプロキシ: 認証が成功すると、企業側のFederationプロキシ(自前で実装することが多い)がSTSのAssumeRoleGetFederationTokenを呼び出す

  3. 一時的なAWS認証情報の取得: STSはリクエストをもとに一時的なAWS認証情報を提供する

違いの要点

  • SAMLと互換性がある場合は、AssumeRoleWithSAMLを用いて直接SAMLアサーションをSTSに提供します。

  • SAMLと互換性がない場合、企業は独自のFederationプロキシを実装する必要があり、このプロキシを通じてAssumeRoleGetFederationToken用いてSAMLアサーションをSTSに提供します。


ここまでお読みいただきありがとうございました!

いいなと思ったら応援しよう!