AWS Security Token Serviceとは
STSとは、AWSリソースへアクセスできる一時的なセキュリティ情報を持つユーザを作成できるサービスで、一般的なアクセス認証情報と異なり、リクエストに応じて、事前に定めた数分〜数時間の短い使用期限の認証情報が発行される。STSを利用することで作成したアプリケーションに長期の認証情報を埋め込む必要がない。STSはグローバルサービスで、全リージョンで単一のエンドポイントを持つ。
認証フェデレーション
外部システムでユーザーIDを管理し、それらのシステムからサインインするユーザーに一時的な認証情報を付与することができる。外部システムは、Microsoft Active DirectoryをはじめとしたSAML対応のサービスや、 Amazon、Facebook、Google、OpenID ConnectなどのウェブIDに対応している。
EC2におけるSTSの利用
EC2のロールもSTSを利用しており、ロールで許可したサービスを利用するために、一時的な認証情報がインスタンスに対して付与される。
セキュリティ認証情報のリクエスト
認証フェデレーションによって、アクセスキーおよびセッショントークンで構成された一時的セキュリティ認証情報を得ることができる。認証情報のリクエストには以下のAPIが利用できる。認証期間はデフォルトで1時間。
API名 | 対象 | 呼び出し元 | 有効期間(デフォルト) | 有効期間(最大) |
---|---|---|---|---|
AssumeRole | クロスアカウント, カスタムIdB | IAMユーザ | 1時間 | ロールの指定値 |
AssumeRoleWithWebIdentity | Web IdP | 任意のユーザ | 1時間 | ロールの指定値 |
AssumeRoleWithSAML | SAML IdP | 任意のユーザ | 1時間 | ロールの指定値 |
GetFederationToken | カスタムIdB | root/IAMユーザ | 12時間 | 36時間 |
GetSessionToken | 信頼されていない環境のユーザ | root/IAMユーザ | 12時間 | 36時間 |
認証情報の取り消し
必要がある場合、特定の時点より前に発行したロールの認証情報の、すべてのアクセス許可をすぐに取り消しできる。すべてのユーザーは、新しい認証情報を再認証して、リクエストする必要が生じる。