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

Simple Log Service:カスタムRAMロールを使用してAlibaba Cloudアカウント間でデータにアクセスする

最終更新日:Jan 21, 2025

OSS-HDFSデータ配布ジョブを実行すると、ジョブはログストアからデータを読み取り、そのデータをObject Storage Service (OSS) バケットに送信します。 ジョブに、必要なデータにアクセスできるカスタムのRAM (Resource Access Management) ロールを引き受ける権限を付与できます。 ログストアとOSSバケットが異なるAlibaba Cloudアカウントに属している場合は、このトピックで説明されている手順を実行します。

手順1: Alibaba CloudアカウントaのRAMロールrole-Aに、ログストアからデータを読み取る権限を付与する

これを実行すると、OSS-HDFSデータ配布ジョブはアカウントAのログストアにアクセスする役割を引き受けることができます。この手順の詳細は次のとおりです。

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

  2. Logstoreからデータを読み取る権限を付与するカスタムポリシーを作成します。

    権限付与に完全一致またはファジー一致を使用するポリシードキュメントを使用できます。

    認証の完全一致

    [ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。

    重要

    交換プロジェクト名ログストア名ビジネス要件に基づいてポリシードキュメントで

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "log:GetCursorOrData",
                    "log:ListShards"
                ],
                "Resource":[
                    "acs:log:*:*:project/Project name/logstore/Logstore name"
                ],
                "Effect":"Allow"
            }
        ]
    }

    承認のためのファジーマッチ

    [ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。

    重要
    • この例では、プロジェクトの名前はlog-project-dev-a、log-project-dev-b、およびlog-project-dev-cであり、Logstoreの名前はwebsite_a_log、website_b_log、およびwebsite_c_logです。

    • 交換log-project-dev-*ウェブサイト_*_log *ビジネス要件に基づいてポリシードキュメントで

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "log:GetCursorOrData",
                    "log:ListShards"
                ],
                "Resource":[
                    "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*"
                ],
                "Effect":"Allow"
            }
        ]
    }
  3. OSS-HDFSデータ配布ジョブに必要なRAMロールのロールを作成します。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。

    重要
    • RAMロールを作成するときは、[信頼できるエンティティの選択] パラメーターを [Alibaba Cloud Service] に設定し、[信頼できるサービスの選択] パラメーターを [Log Service] に設定する必要があります。

    • RAMロールの信頼ポリシーを確認します。 Service要素に少なくとも "log.aliyuncs.com" が含まれていることを確認します。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  4. 作成したカスタムポリシーをrole-a RAMロールにアタッチします。 詳細については、「RAMロールに権限を付与する」をご参照ください。

次に何をすべきか

RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。 詳細については、「RAMロールに関する情報の表示」をご参照ください。

カスタムRAMロールを使用してOSS-HDFSデータ配布ジョブを作成する場合、Logstore Read RAM roleにARNを入力する必要があります。 詳細については、「OSS-HDFSデータ配布ジョブの作成」をご参照ください。

手順2: Alibaba CloudアカウントbのRAMロールrole-Bに、OSSバケットにデータを書き込む権限を付与する

その後、OSSデータシッピングジョブは、Alibaba CloudアカウントAのログストアからAlibaba CloudアカウントBのOSSバケットにデータを送信できます。この手順の詳細は次のとおりです。

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

  2. OSSバケットにデータを書き込む権限を付与するポリシーを作成します。

    [ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。

    {
        "Statement": [
            {
                "Action": [
                    "oss:PutObject"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
              "Effect": "Allow",
              "Action": "oss:ListObjects",
              "Resource": [
                "acs:oss:*:*:*"
              ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "oss:GetBucketInfo",                
                    "oss:PostDataLakeStorageFileOperation",
                    "oss:PostDataLakeStorageAdminOperation"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "oss:*",
                "Resource": [
                    "acs:oss:*:*:*/.dlsdata",
                    "acs:oss:*:*:*/.dlsdata*"
                ]
            }
        ],
        "Version": "1"
    }
  3. OSS-HDFSデータ配布ジョブに必要なRAMロールrole-bを作成します。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。

    重要
    • RAMロールを作成するときは、[信頼できるエンティティの選択] パラメーターを [Alibaba Cloud Service] に設定し、[信頼できるサービスの選択] パラメーターを [Log Service] に設定する必要があります。

    • RAMロールの信頼ポリシーを確認します。 Service要素に少なくとも "log.aliyuncs.com" が含まれていることを確認します。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  4. role-bのRAMロールの信頼ポリシーを変更します。 詳細については、「RAMロールの信頼ポリシーの編集」をご参照ください。

    重要

    Alibaba CloudアカウントA@log.aliyuncs.comのIDサービス要素に追加します。 Alibaba CloudアカウントAのIDを実際のIDに置き換えます。 アカウントセンターコンソールでAlibaba CloudアカウントのIDを確認できます。

    次のポリシーでは、Alibaba CloudアカウントAがSecurity Token Service (STS) トークンを取得して、Alibaba cloudアカウントBのクラウドリソースを管理できます。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "log.aliyuncs.com",
                        "ID of Alibaba Cloud Account A@log.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }
  5. 作成したカスタムポリシーをrole-bのRAMロールにアタッチします。 詳細については、「RAMロールに権限を付与する」をご参照ください。

次のステップ

RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。 詳細については、「RAMロールに関する情報の表示」をご参照ください。

カスタムRAMロールを使用してOSS-HDFSデータ配布ジョブを作成する場合、OSS-HDFS RAMロールにARNを入力する必要があります。 詳細については、「OSS-HDFSデータ配布ジョブの作成」をご参照ください。image.png