Alibaba Cloud Security Token Service (STS) は、Resource Access Management (RAM) ロールに対して、一時的で制限された権限の認証情報をリクエストできる Web サービスです。一時的な認証情報は短時間で期限切れになり、長期的な AccessKey ペアに伴うリスクを軽減するため、その使用はセキュリティ上のベストプラクティスです。
仕組み
STS を使用すると、信頼されたプリンシパルが一時的に RAM ロールを引き受けることができます。基本的なプロセスは次のとおりです:
信頼されたプリンシパル (RAM ユーザー、フェデレーティッドユーザー、Alibaba Cloud サービスなど) が、特定の RAM ロールを引き受けるために STS にリクエストを送信します。
STS はプリンシパルを認証し、対象ロールから信頼されていることを検証します。
リクエストが有効な場合、STS は STS トークンと呼ばれる一時的な認証情報を返します。
プリンシパルは STS トークンを使用して、引き受けたロールによって付与された権限で Alibaba Cloud サービスの API を認証付きで呼び出します。
STS の利点
セキュリティの強化: 長期的な AccessKey ペアを埋め込んだり配布したりする必要がなくなります。STS トークンは自動的に期限切れになるため、認証情報が漏洩するリスクを大幅に低減できます。
認証情報管理の簡素化: STS トークンは一時的であり、有効期間も設定できるため、手動でローテーションする必要はありません。
きめ細かなアクセス許可: STS トークンのリクエスト時にセッションポリシーを適用することで、そのセッションにおける権限をさらに制限し、最小権限の原則を徹底できます。
一般的なユースケース
クロスアカウントアクセスと委任されたアクセス
あるアカウントで承認された RAM ユーザーは、AssumeRole アクションを呼び出して別のアカウントのロールを引き受けることができます。これにより、長期的な認証情報を共有することなく、リソースへ一時的にクロスアカウントアクセスを許可できます。これは、同一アカウント内のユーザーに一時的に昇格した権限を付与する目的でも使用されます。詳細については、「RAM ロールを引き受ける」および「Alibaba Cloud アカウントをまたいでリソースにアクセスする」をご参照ください。
ID フェデレーション
企業の Active Directory などの外部アイデンティティプロバイダー (IdP) のユーザーに、お使いの Alibaba Cloud リソースへのアクセス権を付与できます。フェデレーションユーザーは IdP で認証して SAML アサーションまたは OIDC トークンを受信し、次に AssumeRoleWithSAML または AssumeRoleWithOIDC を呼び出して、それを STS トークンと交換します。詳細については、「SAML 2.0 フェデレーションの概要」および「OIDC フェデレーションの概要」をご参照ください。
モバイルアプリケーションと Web アプリケーション
STS を使用して、Object Storage Service (OSS) バケットへのファイルアップロードなど、Alibaba Cloud リソースへの一時的なアクセスをエンドユーザーに提供する安全なアプリケーションを開発できます。アプリケーションはユーザーを認証し、ユーザーに代わって STS トークンを取得します。詳細については、「STS トークンを使用してモバイルアプリから Alibaba Cloud にアクセスする」をご参照ください。
基本概念
概念 | 説明 |
RAM ユーザー | 永続的な認証情報 (パスワードと AccessKey ペア) を持つ ID です。通常は、長期的なアクセスを必要とする人物またはアプリケーションを表します。詳細については、「RAM ユーザーの概要」および「RAM ユーザーの作成」をご参照ください。 |
RAM ロール | 一連の権限を定義する仮想アイデンティティです。永続的な認証情報を持たず、信頼できるプリンシパルによって一時的に引き受けられます。詳細については、「RAM ロールの概要」、「信頼できる ID プロバイダー用の RAM ロールを作成する、」、「信頼できる Alibaba Cloud アカウント用の RAM ロールを作成する」、および「Alibaba Cloud サービス用の RAM ロールを作成する」をご参照ください。 |
RAM ロール ARN | Alibaba Cloud リソースネーム (ARN) の形式で表される、RAM ロールの一意の識別子です。ポリシーや API 呼び出しでロールを指定するために使用されます。例: |
STS トークン | 一時的な AccessKey ID、一時的な AccessKey シークレット、およびセキュリティトークンで構成される一時的な認証情報です。限られた期間にわたり、引き受けた RAM ロールの権限を保持者に付与します。 |
信頼されたプリンシパル | RAM ロールを引き受けることが許可されているプリンシパル (RAM ユーザー、Alibaba Cloud サービス、フェデレーティッドユーザーなど) です。この信頼関係は、ロールの信頼ポリシーで定義されます。 |
ポリシー | ロールにアタッチされ、その権限を定義する RAM ポリシーです。特定のリソースに対してロールが許可または拒否されるアクションを指定します。ポリシーがないロールには権限がありません。 |
ロールの引き受け | RAM ロールの一時的な認証情報をリクエストするアクションです。これは、AssumeRole などの STS API 操作を呼び出すことで実行されます。 |