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

Simple Log Service:カスタムロールを使用したデータへのアクセス

最終更新日:Aug 27, 2024

カスタムロールをデータ変換ジョブに割り当てて、ソースLogstoreからデータを読み取り、変換されたデータをターゲットLogstoreに書き込むことができます。 このトピックでは、カスタムロールにLogstoreからデータを読み取る権限を付与する方法について説明します。

前提条件

RAM (Resource Access Management) ロールが作成されます。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。

RAMロールは次の要件を満たす必要があります。

  • RAMロールを作成するときに、信頼できるエンティティとしてAlibaba Cloud Serviceを選択します。

  • RAMロールの信頼ポリシーでは、以下に示すように、"サービス" フィールドに "log.aliyuncs.com" を含める必要があります。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "log.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

    image

ソースLogstoreからデータを読み取る権限をRAMロールに付与する

Alibaba Cloudアカウントを使用してRAMロールに権限を付与すると、RAMロールはソースLogstoreからデータを読み取ることができます。 データ変換ジョブを作成するときに、RAMロールを使用できます。 詳細については、「データ変換ジョブの作成」をご参照ください。

  1. ポリシーを作成します。

    ポリシーは、ソースLogstoreからデータを読み取る権限を付与します。

    1. 左側のナビゲーションウィンドウから、 [権限] > [ポリシー] を選択します。

    2. [ポリシー] ページで [ポリシーの作成] をクリックします。

    3. [ポリシーの作成] ページで、[JSON] タブをクリックし、コードエディターの既存のスクリプトを次のいずれかのポリシードキュメントに置き換え、[次へ] をクリックします。

      • 完全一致を使用するポリシー

        この例では、ソースプロジェクト名はlog-project-prod、ソースLogstore名はaccess_logです。 ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えます。

        {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "log:ListShards",
                "log:GetCursorOrData",
                "log:GetConsumerGroupCheckPoint",
                "log:UpdateConsumerGroup",
                "log:ConsumerGroupHeartBeat",
                "log:ConsumerGroupUpdateCheckPoint",
                "log:ListConsumerGroup",
                "log:CreateConsumerGroup"
              ],
              "Resource": [
                "acs:log:*:*:project/log-project-prod/logstore/access_log",
                "acs:log:*:*:project/log-project-prod/logstore/access_log/*"
              ],
              "Effect": "Allow"
            }
          ]
        }
      • ファジーマッチを使用するポリシー

        この例では、ソースプロジェクト名はlog-project-dev-a、log-project-dev-b、またはlog-project-dev-c、ソースLogstore名はapp_a_log、app_b_log、またはapp_c_logです。 ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えます。

        {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "log:ListShards",
                "log:GetCursorOrData",
                "log:GetConsumerGroupCheckPoint",
                "log:UpdateConsumerGroup",
                "log:ConsumerGroupHeartBeat",
                "log:ConsumerGroupUpdateCheckPoint",
                "log:ListConsumerGroup",
                "log:CreateConsumerGroup"
              ],
              "Resource": [
                "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log",
            "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log/*"
              ],
              "Effect": "Allow"
            }
          ]
        }

        権限付与シナリオの詳細については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。

    4. ポリシーのNameパラメーターを設定します。 この例では、log-etl-source-reader-1-policyと入力します。 そして、[OK] をクリックします。

  2. ポリシーをRAMロールにアタッチします。

    1. 左側のナビゲーションウィンドウで、アイデンティティ > ロール.

    2. ロールページ、RAMロールを見つけて、権限の追加[アクション] 列に表示されます。

    3. [ポリシーの選択] セクションで [カスタムポリシー] をクリックします。 次に、ステップ2で作成したポリシーを選択し、[OK] をクリックします。 この例では、log-etl-source-reader-1ポリシーが選択されています。

      设置权限

    4. 承認結果を確認します。 次に、[完了] をクリックします。

  3. RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。

    RAMロールの [基本情報] セクションで、RAMロールのARNを表示します。 例: acs:ram::13234:role/logsource。

RAMロールに、同じAlibaba Cloudアカウント内の宛先Logstoreにデータを書き込む権限を付与する

ソースLogstoreとターゲットLogstoreが同じAlibaba Cloudアカウントに属している場合、Alibaba Cloudアカウントを使用してRAMロールに書き込み権限を付与できます。 その後、RAMロールは変換されたデータを宛先Logstoreに書き込むことができます。 データ変換ジョブを作成するときに、RAMロールを使用できます。 詳細については、「データ変換ジョブの作成」をご参照ください。

  1. ポリシーを作成します。

    1. 左側のナビゲーションウィンドウから、 [権限] > [ポリシー] を選択します。

    2. [ポリシー] ページで [ポリシーの作成] をクリックします。

    3. [ポリシーの作成] ページで、[JSON] タブをクリックし、コードエディターの既存のスクリプトを次のいずれかのポリシードキュメントに置き換え、[次へ] をクリックします。

      • 完全一致を使用するポリシー

        この例では、ターゲットプロジェクト名はlog-project-prod、ターゲットLogstore名はaccess_log_outputです。 ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えます。

        {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "log:Post*",
                "log:BatchPost*"
              ],
               "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output",
              "Effect": "Allow"
            }
          ]
        }
      • ファジーマッチを使用するポリシー

        この例では、ターゲットプロジェクト名はlog-project-dev-a、log-project-dev-b、またはlog-project-dev-cで、ターゲットLogstore名はapp_a_log_output、app_b_log_output、またはapp_c_log_outputです。 ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えます。

        {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "log:Post*",
                "log:BatchPost*"
              ],
               "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output",
              "Effect": "Allow"
            }
          ]
        }

        権限付与シナリオの詳細については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。

    4. ポリシーのNameパラメーターを設定します。 この例では、log-etl-target-writer-1-policyと入力します。 そして、[OK] をクリックします。

  2. ポリシーをRAMロールにアタッチします。

    1. 左側のナビゲーションウィンドウで、アイデンティティ > ロール.

    2. ロールページ、RAMロールを見つけて、権限の追加[アクション] 列に表示されます。

    3. [ポリシーの選択] セクションで [カスタムポリシー] をクリックします。 次に、ステップ2で作成したポリシーを選択し、[OK] をクリックします。 この例では、log-etl-target-writer-1ポリシーが選択されています。

      写入权限

    4. 承認結果を確認します。 次に、[完了] をクリックします。

  3. RAMロールのARNを取得します。

    RAMロールの [基本情報] セクションで、RAMロールのARNを表示します。 例: acs:ram::13234:role/logtarget。

RAMロールに、Alibaba Cloudアカウント間で宛先Logstoreにデータを書き込む権限を付与する

送信元と送信先のログストアが異なるAlibaba Cloudアカウントに属している場合は、次の手順を実行してRAMロールに権限を付与します。 たとえば、Alibaba Cloudアカウントaに属するソースLogstoreからデータを読み取り、変換されたデータをAlibaba CloudアカウントBに属するターゲットLogstoreに書き込むためのデータ変換ジョブが作成されます。

重要

次の手順を実行する前に、Alibaba CloudアカウントB内の宛先Logstoreにデータを書き込む権限をRAMロールに付与してください。詳細については、「同じAlibaba Cloudアカウント内の宛先Logstoreにデータを書き込む権限をRAMロールに付与する」をご参照ください。

  1. Alibaba CloudアカウントBを使用して、RAMコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、アイデンティティ > ロール.

  3. [ロール] ページで、管理するRAMロールを見つけます。

  4. 信頼ポリシー管理タブをクリックします。信頼ポリシーの編集.

  5. 信頼ポリシーを変更します。

    ソースLogstoreが属するAlibaba CloudアカウントAのIDService要素に追加します。 ソースLogstoreが属するAlibaba CloudアカウントAのIDをAlibaba CloudアカウントのIDに置き換えます。 アカウント管理コンソールでAlibaba CloudアカウントのIDを確認できます。 次のポリシーでは、Alibaba CloudアカウントAは、一時的なトークンを使用してAlibaba cloudアカウントBのクラウドリソースを管理できます。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "ID of Alibaba Cloud Account A to which the source Logstore belongs@log.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }
  6. RAMロールのARNを取得します。

    RAMロールの [基本情報] セクションで、RAMロールのARNを表示します。 例: acs:ram::13234:role/logtarget。

次のステップ

データ変換ジョブでRAMロールのARNを入力できます。 詳細については、「データ変換ジョブの作成」をご参照ください。

RAM角色标识