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と互換性がある場合
認証: ユーザーは企業のSAML対応IDPで認証を行う
SAMLアサーションの取得: 認証が成功すると、IDPはSAMLアサーション(ユーザーの認証情報や属性を含むXML文書)を生成する
STS利用: ユーザーまたはアプリケーションは、SAMLアサーションを用いてSTSのAssumeRoleWithSAMLを呼び出す
一時的なAWS認証情報の取得: STSはSAMLアサーションを確認し、一時的なAWS認証情報を提供する
SAMLと互換性がない場合
認証: ユーザーは企業のLDAPで認証を行います。
自前のFederationプロキシ: 認証が成功すると、企業側のFederationプロキシ(自前で実装することが多い)がSTSのAssumeRoleやGetFederationTokenを呼び出す
一時的なAWS認証情報の取得: STSはリクエストをもとに一時的なAWS認証情報を提供する
違いの要点
SAMLと互換性がある場合は、AssumeRoleWithSAMLを用いて直接SAMLアサーションをSTSに提供します。
SAMLと互換性がない場合、企業は独自のFederationプロキシを実装する必要があり、このプロキシを通じてAssumeRoleやGetFederationToken用いてSAMLアサーションをSTSに提供します。
ここまでお読みいただきありがとうございました!