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 インターフェイスの呼び出し Log Service インターフェイスの呼び出しコード例
サンプルコードは、ユーザー B が STS を介してユーザー A のプロジェクトにデータを書き込む場合に適用できます ( JavaSDK)。
コード リンク