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

:アクセス制御

最終更新日:Mar 04, 2025

アクセス制御

DataHub は、アクセス制御に Resource Access Management (RAM) を使用します。必要な権限が付与されている RAM ユーザーのみが DataHub のリソースにアクセスできます。Alibaba Cloud アカウントは、その中のリソースに対するすべての権限を持っています。デフォルトでは、RAM ユーザーの作成後、RAM ユーザーは DataHub のリソースにアクセスする権限を持っていません。RAM ユーザーが DataHub のリソースにアクセスできるようにするには、DataHub に対するアクセス権限を含むポリシーを RAM ユーザーにアタッチする必要があります。RAM ユーザーの作成方法とユーザーへのポリシーのアタッチ方法の詳細については、「Alibaba Cloud アカウントに 多要素認証 (MFA) デバイスをバインドする」をご参照ください。このトピックでは、RAM を使用して DataHub のアクセス制御を実装する方法について説明します。

RAM ユーザーに権限を付与する

RAM ユーザーがアクセスできる DataHub リソースの種類

RAM ユーザーは、DataHub の次のリソースにアクセスできます:プロジェクト、トピック、およびサブスクリプション。DataHub は、プロジェクト、トピック、およびサブスクリプションの RAM 認証をサポートしています。ただし、RAM 認証を使用してシャードデータにアクセスすることはできません。サブスクリプションとは、特定のプロジェクトのトピック内のレコードを読み取って処理するようにアプリケーションを指定する操作です。

リソースの種類

説明

プロジェクト

acs:dhs:$region:$accountid:projects/$projectName

トピック

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

サブスクリプション

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId

DataHub の API 操作と対応する RAM ポリシー

プロジェクト

操作

アクション

リソース

CreateProject

dhs:CreateProject

acs:dhs:$region:$accountid:projects/*

ListProject

dhs:ListProject

acs:dhs:$region:$accountid:projects/*

DeleteProject

dhs:DeleteProject

acs:dhs:$region:$accountid:projects/$projectName

GetProject

dhs:GetProject

acs:dhs:$region:$accountid:projects/$projectName

トピック

操作

アクション

リソース

CreateTopic

dhs:CreateTopic

acs:dhs:$region:$accountid:projects/$projectName/topics/*

ListTopic

dhs:ListTopic

acs:dhs:$region:$accountid:projects/$projectName/topics/*

DeleteTopic

dhs:DeleteTopic

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

GetTopic

dhs:GetTopic

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

UpdateTopic

dhs:UpdateTopic

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

サブスクリプション

操作

アクション

リソース

CreateSubscription

dhs:CreateSubscription

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/*

DeleteSubscription

dhs:DeleteSubscription

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId

GetSubscription

dhs:GetSubscription

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId

UpdateSubscription

dhs:UpdateSubscription

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId

ListSubscription

dhs:ListSubscription

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/*

CommitOffset

dhs:GetSubscription

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId

GetOffset

dhs:GetSubscription

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/subscriptions/$subId

コネクタ

操作

アクション

リソース

CreateConnector

dhs:CreateConnector

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/*

DeleteConnector

dhs:DeleteConnector

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/*

GetConnector

dhs:GetConnector

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/*

UpdateConnector

dhs:UpdateConnector

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/*

ListConnector

dhs:ListConnector

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName/connectors/*

シャード

操作

アクション

リソース

ListShard

dhs:ListShard

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

MergeShard

dhs:UpdateShard

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

SplitShard

dhs:UpdateShard

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

PubSub

操作

アクション

リソース

PutRecords

dhs:PutRecords

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

GetRecords

dhs:GetRecords

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

GetCursor

dhs:GetRecords

acs:dhs:$region:$accountid:projects/$projectName/topics/$topicName

DataHub の RAM ポリシーに適用できる条件

条件

機能

有効な値

acs:SourceIp

IP アドレスまたは CIDR ブロックを指定します。

標準の IP アドレス。ワイルドカードとしてアスタリスク (*) を設定できます。

acs:SecureTransport

指定されたオブジェクトへのアクセスに HTTPS を使用するかどうかを指定します。

true/false

acs:MFAPresent

ユーザーログイン時に 多要素認証 (MFA) を使用するかどうかを指定します。

true/false

acs:CurrentTime

指定されたオブジェクトにアクセスできる時間を指定します。

ISO 8601 標準で時間を指定します。

システムポリシー

DataHub は、RAM ユーザーにアタッチできるシステムポリシーを提供します。ニーズに基づいてシステムポリシーを指定できます。

AliyunDataHubFullAccess

このポリシーは、DataHub に対するすべての権限を RAM ユーザーに付与します。ほとんどの場合、このポリシーは DataHub のリソースを管理するために使用されます。

AliyunDataHubReadOnlyAccess

このポリシーは、DataHub に対する読み取り専用権限を RAM ユーザーに付与するため、RAM ユーザーは DataHub のすべてのリソースに関する情報をクエリできます。たとえば、このポリシーを使用して、プロジェクトに関する情報のクエリ、プロジェクトリストの表示、またはデータの読み取りを行うことができます。ただし、このポリシーを使用してデータを更新、作成、または書き込むことはできません。

AliyunDataHubSubscribeAccess

このポリシーは、RAM ユーザーに DataHub のデータにサブスクライブする権限を付与します。このポリシーは、GetTopic、ListShard、GetRecords、およびサブスクリプションとオフセットに関連するすべての操作を含む、データの読み取りに関連する API 操作のみを呼び出すために使用できます。

AliyunDataHubPublishAccess

このポリシーは、RAM ユーザーに DataHub にデータを公開する権限を付与します。このポリシーは、GetTopic、ListShard、PutRecords を含む、データの書き込みに関連する API 操作のみを呼び出すために使用できます。

カスタムポリシー

DataHub によって提供されるシステムポリシーが要件を満たしていない場合は、カスタムポリシーを作成できます。カスタムポリシーを作成するには、次の操作を実行します。Alibaba Cloud アカウントを使用して RAM コンソールにログインします。左側のナビゲーションウィンドウで、[権限] > [ポリシー] を選択します。[ポリシー] ページで、[ポリシーの作成] をクリックします。カスタムポリシーの例:

DataHub コンソールでアクセス可能なプロジェクトを表示する

// RAM ユーザーが DataHub コンソールでアクセス権限を持つプロジェクトを表示できるようにするには、次の構成を statement ブロックに追加します。
// DataHub コンソールでアクセス可能なプロジェクトを表示するには、ListProject 操作と GetProject 操作を呼び出す権限が必要です。
{
  "Action": ["dhs:ListProject","dhs:GetProject"], 
  "Resource": "acs:dhs:*:*:projects/*",
  "Effect": "Allow"
}

DataHub コンソールでトピックを作成する

// DataHub コンソールでプロジェクトのトピックを表示するには、ListTopic 操作と GetTopic 操作を呼び出す権限が必要です。
// RAM ユーザーに DataHub コンソールで "test" という名前のプロジェクトにトピックを作成する権限を付与するには、次の構成を使用します。
{
  "Version": "1",
  "Statement": [
    {
      "Action": ["dhs:ListProject", "dhs:GetProject"],
      "Resource": "acs:dhs:*:*:projects/*",
      "Effect": "Allow"
    },
    {
      "Action": ["dhs:ListTopic", "dhs:GetTopic", "dhs:CreateTopic"],
      "Resource": "acs:dhs:*:*:projects/test/topics/*",
      "Effect": "Allow"
    }
  ]
}

その他のカスタムポリシー

// 指定されたプロジェクトのトピックに関する情報をクエリする権限を RAM ユーザーに付与するカスタムポリシーの例。
{
  "Version": "1",
  "Statement": [
    {
      "Action": ["dhs:ListTopic", "dhs:GetTopic"],
      "Resource": "acs:dhs:cn-hangzhou:12121312:projects/foo/topics/*",
      "Effect": "Allow"
    }
  ]
}
// "foo" という名前のプロジェクトのトピックへのサブスクリプションに対するすべての権限を RAM ユーザーに付与するカスタムポリシーの例。
{
  "Version": "1",
  "Statement": [
    {
      "Action": ["dhs:*Subscription"],
      "Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/*/subscriptions/*",
      "Effect": "Allow"
    }
  ]
}
// "foo" という名前のプロジェクトのトピックへのサブスクリプションに関する情報をクエリする権限を RAM ユーザーに付与するカスタムポリシーの例。
{
  "Version": "1",
  "Statement": [
    {
      "Action": ["dhs:ListSubscription"],
      "Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/*/subscriptions/*",
      "Effect": "Allow"
    }
  ]
}
// "foo" という名前のプロジェクトのトピック t1 への ID が "14985645198374IoCK" のサブスクリプションのオフセットをコミットする権限を RAM ユーザーに付与するカスタムポリシーの例。
{
  "Version": "1",
  "Statement": [
    {
      "Action": ["dhs:GetSubscription"],
      "Resource": "acs:dhs:cn-hangzhou:*:projects/foo/topics/t1/subscriptions/14985645198374IoCK",
      "Effect": "Allow"
    }
  ]
}
// 指定されたトピックのシャードを分割またはマージする権限を RAM ユーザーに付与するカスタムポリシーの例。使用可能な操作は、ListShard、SplitShard、および MergeShard です。
{
  "Version": "1",
  "Statement": [
    {
      "Action": ["dhs:*Shard"],
      "Resource": "acs:dhs:cn-hangzhou:12121312:projects/foo/topics/bar",
      "Effect": "Allow"
    }
  ]
}