3.2.8. セキュアなトークンサービス
Amazon Web Services の Secure Token Service (STS) は、ユーザーを認証するための一時セキュリティー認証情報のセットを返します。
Red Hat Ceph Storage Object Gateway は、Identity and Access Management (IAM) 用の Amazon STS アプリケーションプログラミングインターフェイス (API) のサブセットをサポートします。
ユーザーは最初に STS に対して認証し、後続の要求で使用できる有効期間の短い S3 アクセスキーとシークレットキーを受け取ります。
Red Hat Ceph Storage は、OIDC プロバイダーを設定してシングルサインオンと統合することで、S3 ユーザーを認証できます。この機能により、Object Storage ユーザーは、ローカルの Ceph Object Gateway データベースではなく、エンタープライズアイデンティティープロバイダーに対して認証できるようになります。たとえば、SSO がバックエンドのエンタープライズ IDP に接続されている場合、Object Storage ユーザーはエンタープライズ認証情報を使用して認証して、Ceph Object Gateway S3 エンドポイントにアクセスできます。
STS を IAM ロールポリシー機能と併用することで、細かく調整された認可ポリシーを作成してデータへのアクセスを制御できます。これにより、オブジェクトストレージデータにロールベースのアクセス制御 (RBAC) または属性ベースのアクセス制御 (ABAC) 認可モデルを実装できるようになり、どのユーザーがデータにアクセスできるかを完全に制御できるようになります。
STS を使用して S3 リソースにアクセスするワークフローを簡略化する
- ユーザーは、Red Hat Ceph Storage 内の S3 リソースにアクセスしたいと考えています。
- ユーザーは SSO プロバイダーに対して認証する必要があります。
- SSO プロバイダーは IDP と統合され、ユーザーの認証情報が有効か確認し、ユーザーが認証されると SSO がユーザーにトークンを提供します。
- ユーザーは、SSO によって提供されたトークンを使用して Ceph Object Gateway STS エンドポイントにアクセスし、S3 リソースへのアクセスをユーザーに提供する IAM ロールを引き受けるように要求します。
- Red Hat Ceph Storage ゲートウェイはユーザートークンを受け取り、SSO にトークンの検証を要求します。
- SSO がトークンを検証すると、ユーザーはロールを引き受けることができます。STS を通じて、ユーザーは一時的なアクセスと秘密鍵を取得し、S3 リソースにアクセスできるようになります。
- ユーザーが引き受けた IAM ロールにアタッチされたポリシーに応じて、ユーザーは S3 リソースセットにアクセスできます。
- たとえば、バケット A を読み取り、バケット B に書き込みます。
関連情報
- Amazon Web Services Secure Token Service の Welcome ページ。
- STS Lite と Keystone の詳細は、Red Hat Ceph Storage 開発者ガイド の Keystone を使用した STS Lite の設定と使用 セクションを参照してください。
- STS Lite と Keystone の制限事項の 詳細は、Red Hat Ceph Storage 開発者ガイド の STS Lite と Keystone を併用する際の制限事項への対処セクションを参照してください。
3.2.8.1. Secure Token Service アプリケーションのプログラミングインターフェイス リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway は、以下の Secure Token Service (STS) アプリケーションプログラミングインターフェイス (API) を実装します。
AssumeRole
この API は、アカウント間のアクセスのための一時的な認証情報のセットを返します。これらの一時的な認証情報により、Role と、AssumeRole API で割り当てられるポリシーの両方に割り当てられるパーミッションポリシーを使用することができます。RoleArn および RoleSessionName リクエストパラメーターは必須ですが、他の要求パラメーターは任意です。
RoleArn- 説明
- 長さが 20 ~ 2048 文字の Amazon Resource Name (ARN) を想定するロール。
- 型
- String
- 必須
- はい
RoleSessionName- 説明
-
仮定するロールセッション名を特定します。ロールセッション名は、異なるプリンシパルや別の理由がロールを想定する場合にセッションを一意に識別できます。このパラメーターの値は、2 文字から 64 文字までです。
=、,、.、@、および-文字は使用できますが、スペースは使用できません。 - 型
- String
- 必須
- はい
Policy- 説明
- インラインセッションで使用する JSON 形式の Identity and Access Management (IAM) ポリシー。このパラメーターの値は 1 文字から 2048 文字までです。
- 型
- String
- 必須
- いいえ
DurationSeconds- 説明
-
セッションの期間 (秒単位)。最小値は
900秒で、最大値は43200秒です。デフォルト値は3600秒です。 - 型
- Integer
- 必須
- いいえ
ExternalId- 説明
- 別のアカウントのロールを想定する場合には、利用可能な場合は一意の外部識別子を指定します。このパラメーターの値は、2 文字から 1224 文字までになります。
- 型
- String
- 必須
- いいえ
SerialNumber- 説明
- 関連付けられたマルチファクター認証 (MFA) デバイスからのユーザーの識別番号。パラメーターの値は、9 文字から 256 文字までのハードウェアデバイスまたは仮想デバイスのシリアル番号になります。
- 型
- String
- 必須
- いいえ
TokenCode- 説明
- 信頼ポリシーに MFA が必要な場合は、マルチファクター認証 (MFA) デバイスから生成された値。MFA デバイスが必要で、このパラメーターの値が空または期限切れの場合には、AssumeRole の呼び出しは "access denied" エラーメッセージを返します。このパラメーターの値には、固定長は 6 文字です。
- 型
- String
- 必須
- いいえ
AssumeRoleWithWebIdentity
この API は、OpenID Connect や OAuth 2.0 アイデンティティープロバイダーなどのアプリケーションによって認証されたユーザーの一時認証情報のセットを返します。RoleArn および RoleSessionName リクエストパラメーターは必須ですが、他の要求パラメーターは任意です。
RoleArn- 説明
- 長さが 20 ~ 2048 文字の Amazon Resource Name (ARN) を想定するロール。
- 型
- String
- 必須
- はい
RoleSessionName- 説明
-
仮定するロールセッション名を特定します。ロールセッション名は、異なるプリンシパルや別の理由がロールを想定する場合にセッションを一意に識別できます。このパラメーターの値は、2 文字から 64 文字までです。
=、,、.、@、および-文字は使用できますが、スペースは使用できません。 - 型
- String
- 必須
- はい
Policy- 説明
- インラインセッションで使用する JSON 形式の Identity and Access Management (IAM) ポリシー。このパラメーターの値は 1 文字から 2048 文字までです。
- 型
- String
- 必須
- いいえ
DurationSeconds- 説明
-
セッションの期間 (秒単位)。最小値は
900秒で、最大値は43200秒です。デフォルト値は3600秒です。 - 型
- Integer
- 必須
- いいえ
ProviderId- 説明
- アイデンティティープロバイダーからのドメイン名の完全修飾ホストコンポーネント。このパラメーターの値は、長さが 4 ~ 2048 文字の OAuth 2.0 アクセストークンでのみ有効です。
- 型
- String
- 必須
- いいえ
WebIdentityToken- 説明
- アイデンティティープロバイダーから提供される OpenID Connect アイデンティティートークンまたは OAuth 2.0 アクセストークン。このパラメーターの値は、4 文字から 2048 文字までです。
- 型
- String
- 必須
- いいえ
関連情報
- 詳細は、Red Hat Ceph Storage 開発者ガイド の Secure Token ServiceAPI を使用した例 セクションを参照してください。
- Amazon Web Services Security Token Service (AssumeRole アクション)
- Amazon Web Services Security Token Service (AssumeRoleWithWebIdentity アクション)