STS を使用して別のアカウントのログ サービス リソースにアクセスする方法

作成されたプロジェクト、ログストア、構成、およびマシン グループは、ユーザー独自のリソースです。 ご使用になるリソースには完全な操作権限がデフォルトで付与されており、 このページで説明されているすべての API を使用してリソースを操作することができます。

リソースへのアクセス許可を別のアカウントに付与するには、セキュリティ トークン サービス (STS) で特定の操作を呼び出せる仮の AccessKey/トークンを取得する必要があります。 次の手順を読み進める前に「概要」をご参照ください。

ユーザー A が Log Service で作成したプロジェクト、LogStore、およびその他のリソースにユーザー B がアクセスするためには、次の操作で API を呼び出します。

ユーザー A

ロールの作成

ユーザー A は、リソース アクセス管理 (RAM) コンソールまたは API を使用して、信頼されたアカウント B のロールを作成します。 コードの詳細は次のとおりです。

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "RAM": [
          "acs:ram::<Alibaba Cloud account ID of user B>:root"
        ]
      }
    }
  ],
  "Version": "1"
}
ロールの作成後、

ユーザー A はそのロールに対して 特別な操作許可を 与えなければなりません。

データ書き込み専用に必要な許可は次のとおりです。

```
{
  "Version": "1",
  "Statement": [
    {
      "Action": "log:ListLogStores",
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
```

共同コンシューマー グループを使用してデータ抽出を行うために必要な許可は次のとおりです。

```
{
  "Version": "1",
  "Statement": [
    {
      "Action": [
         "log:GetCursorOrData",
         "log:CreateConsumerGroup",
         "log:ListConsumerGroup",
         "log:ConsumerGroupUpdateCheckPoint",
         "log:ConsumerGroupHeartBeat",
         "log:GetConsumerGroupCheckPoint",
         "log:UpdateConsumerGroup",
      ]
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
```

リソースの設定方法を以下に説明します。

  • 次のようにルートを設定します。
  • 特定のプロジェクトへのアクセス許可の承認:acs:log::{projectOwnerAliUid}:project/
  • 特定の Logstore へのアクセス許可の承認: acs:log::{projectOwnerAliUid}:project/{projectName}/logstore/{logstoreName}/

完全なリソースの説明については、「Log Service RAM リソース」をご参照ください。

ユーザー B

RAM ユーザーの作成と承認

RAM ユーザーを作成し、RAM コンソールの中で、または API/SDK を使用して、 作成した RAM ユーザーに AssumeRole 許可を付与します。

一時的な AccessKey/トークン取得のための STS インターフェイスの呼び出し

詳細については、「STS SDK の使用制限」をご参照ください。

Log Service インターフェイスの呼び出し

Log Service SDK 説明

コード例

サンプルコードは、ユーザー B が STS を介してユーザー A のプロジェクトにデータを書き込む場合に適用できます ( JavaSDK)。

コード リンク