すべてのプロダクト
Search
ドキュメントセンター

Resource Access Management:RAM ロールの概要

最終更新日:Feb 25, 2026

RAM ロールとは?

Resource Access Management (RAM) ロールは、RAM ユーザーと同様に特定のポリシーがアタッチされた RAM ID です。ただし、ロールは単一の人物やアプリケーションと一意に紐付けられません。代わりに、その権限を必要とする信頼されたプリンシパル(ユーザーまたは他のサービスなど)によって仮装されます。ロールにはパスワードや AccessKey ペアなどの長期的な認証情報は存在しません。プリンシパルがロールを仮装すると、セキュリティトークンサービス (STS) がそのセッションのみ有効な一時的なセキュリティ認証情報を動的に発行します。

各 RAM ロールは、アカウント内のリソースであり、固有の Alibaba Cloud リソース名 (ARN) を持ちます:acs:ram::<account-id>:role/<role-name>。この ARN を使用して、ポリシーや API 呼び出しでロールを参照します。ロールの ARN の確認方法については、「RAM ロールの情報を表示する」をご参照ください。

RAM ロールを利用する理由

RAM ロールは、Alibaba Cloud リソースへのアクセスをより安全かつ効率的に管理する手法です。

  • 一時的な特権の付与:特定のタスクを実行するために、プリンシパルに対して一時的に高いレベルの権限を付与できます。これにより、長期的かつ高権限の認証情報に起因するリスクを低減できます。

  • クロスアカウントでのリソースアクセス:ある Alibaba Cloud アカウント内のプリンシパルが、別のアカウント内のリソースにアクセスできるように許可できます。これにより、重複した ID の作成・管理を回避し、集中管理と安全なリソース共有が可能になります。

  • サービスおよびアプリケーションへの安全なアクセス:Elastic Compute Service (ECS) インスタンス上またはその他のサービス上で実行されるアプリケーションは、AssumeRole 操作を呼び出すことでロールを仮装し、一時的な認証情報を取得できます。これにより、アプリケーションコード内に AccessKey ペアをハードコーディングする必要がなくなります。

基本概念

RAM ロールを効果的に活用するには、以下の概念を理解することが不可欠です。

image

プリンシパル

プリンシパル とは、ロールを仮装可能な ID です。ロールの 信頼ポリシー では、どのプリンシパルを信頼するかが定義されます。プリンシパルには以下の 3 種類があります。

種類

説明

主な利用シーン

Alibaba Cloud アカウント

当該アカウント自体、またはそのアカウント内の RAM ユーザー、その他の RAM ロールがロールを仮装できます。このアカウントは、ロールを所有するアカウントと同じでも異なっていても構いません。

RAM ユーザーがコンソールで ID を切り替える、または CLI/SDK を使用して AssumeRole 操作を呼び出してロールを仮装します。

Alibaba Cloud サービス

指定されたクラウドサービスがロールを仮装できます。このようなロールは サービスロール と呼ばれます。

クラウドサービスに代理で操作を行わせるために委任します。たとえば、ECS インスタンスにインスタンス RAM ロールを割り当てることで、そのインスタンス上で実行されるアプリケーションが Object Storage Service (OSS) バケット内のデータにアクセスできるようになります。

多くのクラウドサービスでは、機能を有効化するために、事前に定義されたサービスとリンクされた サービスリンクロール を使用します。

ID プロバイダー (IdP)

SAML 2.0 または OIDC をサポートする指定された IdP のユーザーがロールを仮装できます。これにより、ID フェデレーションが可能になります。

企業の IdP に登録されているユーザーが、ロールベースのシングルサインオン (SSO) を使用して Alibaba Cloud コンソールにログインできます。

フェデレーテッドユーザーは、IdP から提供されるトークン(SAML アサーションまたは ID トークン)を付与して、AssumeRoleWithSAML または AssumeRoleWithOIDC 操作を呼び出すことで、一時的な認証情報を取得できます。

説明

信頼されたプリンシパルとして Alibaba Cloud アカウントが指定された場合、当該アカウント内のすべての ID がデフォルトでロールを仮装できます。ただし、ロールの信頼ポリシーを編集することで、特定の RAM ユーザーまたは RAM ロールのみにアクセスを制限することも可能です。詳細については、「RAM ロールの信頼ポリシーを変更する」をご参照ください。

ロールの仮装

RAM ロールの仮装とは、信頼されたプリンシパルが一時的にロールの権限を取得するプロセスです。ロールが仮装されると、セキュリティトークンサービス (STS) が一時的なセキュリティ認証情報を発行します。この操作により、ロールセッション が開始され、元の ID の権限は一時停止されます。仮装されるロールは、同一アカウント内に存在しても、異なるアカウント内に存在しても構いません(クロスアカウントでのロール仮装)。

コンソールでの ID 切り替え、または AssumeRoleAssumeRoleWithSAMLAssumeRoleWithOIDC などの API 操作の呼び出しにより、ロールを仮装 できます。

信頼ポリシー

信頼ポリシーは、RAM ロールにアタッチされる必須の JSON 形式のドキュメントです。これは、どのプリンシパル(アカウント、ユーザー、ロール、クラウドサービス)がロールを仮装できるかを定義します。このポリシーは、対象リソースがロール自体であるリソースベースのポリシーです。

主な機能

  • ロールを仮装できる主体の定義:信頼ポリシーの Principal 要素で、信頼されるプリンシパルを指定します。

  • 仮装条件の制御:多要素認証 (MFA) の要請や特定のソース IP アドレスの制限など、ロールの仮装をさらに制限するための Condition 要素を追加できます。

  • アクセスポリシーとの連携:信頼ポリシーは「誰がロールを仮装できるか」を定義し、ロールにアタッチされた アクセスポリシー は、「仮装後にロールが何を行うことができるか」を定義します。

以下の信頼ポリシーでは、アカウント 123456789012**** 内のすべての ID がロールを仮装できるよう許可しています。

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "RAM": [
          "acs:ram::123456789012****:root"
        ]
      }
    }
  ],
  "Version": "1"
}

RAM ロールと RAM ユーザーの違い

両者とも RAM ID ですが、用途は異なります。以下の表に主な相違点を示します。

比較項目

RAM ユーザー

RAM ロール

用途

特定の人物またはアプリケーションを表し、直接使用されます

一連の権限を表し、プリンシパル によって仮装される必要があります

認証情報

長期的な認証情報(パスワードおよび/または AccessKey ペア)を持ちます

長期的な認証情報は持ちません。仮装時に一時的な認証情報(STS トークン)が生成されます

認証情報の有効期間

長期(手動で変更または削除されるまで)

一時的であり、設定可能な期間が経過すると有効期限切れになります

信頼ポリシー

なし

ロールを仮装できる主体を定義するための 信頼ポリシー が必要です

RAM ロールの制限事項については、「制限事項」をご参照ください。

ロールセッション

プリンシパルがロールを仮装すると、ロールセッションが開始されます。STS が発行する一時的な認証情報は、このセッションに関連付けられます。これらの認証情報を使用して実行されたすべての操作は、ロールセッションに帰属します。

ロールセッションには以下の要素があります。

  1. セッション名(RoleSessionName:ユーザーが指定するセッションの識別子です。ActionTrail のログに記録されるため、ロールを仮装したユーザーまたはアプリケーションによる操作を追跡できます。

  2. セッション期間:固定のライフサイクルを持ち、セッション終了時に認証情報が有効期限切れになります。

説明

ロールを仮装する際に、インラインのセッションポリシーを渡すことができます。ロールセッションの有効な権限は、ロールのアクセスポリシーとセッションポリシーの積集合となります。これにより、特定のセッションにおいてロールの権限を動的に限定できます。詳細については、AssumeRole API リファレンスの Policy パラメーターをご参照ください。

ロールチェイニング

ロールチェイニングとは、あるロールを使用して第 2 のロールを仮装する状況を指します。たとえば、RAM ユーザーがロール A を仮装し、その STS トークンを使ってロール B を仮装するといったケースです。これらのロールは同一アカウント内にあっても、異なるアカウント内にあっても構いません。

ロールチェイニングは、複雑なマルチアカウント環境でよく見られます。たとえば、開発者が中央の「ジャンプ」アカウント(ロール A を仮装)にフェデレートし、そこから本番アカウント内のより特権の高いロール(ロール B)を仮装して特定のタスクを実行するといったユースケースです。

Alibaba Cloud CLI、SDK、またはコンソールでのロール切り替えにより、ロールチェイニングを実行できます。詳細については、「ロールチェイニングの使用」をご参照ください。

適用範囲/利用シーン

  • 一時的な特権の付与

    開発者は日常業務で権限が限定された RAM ユーザーを使用しています。本番データベースの変更など、機密性の高い操作を実行する必要がある場合、そのタスクに必要な管理権限を付与するロールを仮装できます。タスク完了後、ロールの使用を中止すれば、権限は限定された状態に戻ります。これにより、最小権限の原則が遵守されます。

    詳細については、「RAM ロールを偽装する方法」をご参照ください。

  • アカウント間でのアクセス委任

    組織が開発用(アカウント A)と本番用(アカウント B)の別々の Alibaba Cloud アカウントを保有している場合、アカウント A で実行される CI/CD パイプラインがアカウント B の ECS にアプリケーションをデプロイできるようにするには、以下のように設定します。

    1. アカウント B に、アカウント A を信頼するロールを作成します。

    2. アカウント A の CI/CD サービスロールに、アカウント B のロールを仮装する権限を付与します。

    3. CI/CD パイプラインがアカウント B のロールを仮装し、アプリケーションのデプロイに必要な認証情報を取得します。

    詳細については、「クロスアカウントでのリソースアクセス」をご参照ください。

  • Alibaba Cloud サービスへのアクセス付与

    ECS インスタンス上で実行されるアプリケーションが OSS バケット内のオブジェクトを読み取る必要があります。アプリケーションに AccessKey ペアを埋め込む代わりに、バケットに対する読み取り権限を持つ ECS 向けサービスロールを作成し、それを ECS インスタンスにアタッチします。その後、アプリケーションは自動的に提供される一時的な認証情報を使用して、OSS に安全にアクセスできます。

    詳細については、「インスタンス RAM ロール」をご参照ください。

  • フェデレーテッドユーザーへのアクセス付与

    企業が Microsoft Entra ID や Okta などの外部 ID プロバイダー (IdP) を使用している場合、従業員が Alibaba Cloud コンソールにアクセスできるようにするには、SAML 2.0 または OIDC を使用した ID フェデレーションを設定し、当該 IdP を信頼する RAM ロールを作成します。ユーザーがログインすると、IdP がユーザーを認証し、ユーザーはロールを仮装して Alibaba Cloud にアクセスします。これにより、Alibaba Cloud 内に個別の RAM ユーザーを作成することなく、IdP でユーザーを一元管理できます。

    詳細については、「SAML を使用したロールベース SSO の概要」および「OIDC を使用したロールベース SSO の概要」をご参照ください。

参考文献