OSS 転送タスクを実行する前に、OSS バケットの所有者は クイック許可 を行う必要があります。権限を付与されると Log Service より OSS に書き込むことができるようになります。

本ドキュメントでは、さまざまなシナリオにおいて、RAM で権限を付与して OSS 転送タスクが実行されるようにする方法について説明します。

ポリシーの変更

クイック許可を完了すると、AliyunLogRolePolicy に AliyunLogDefaultRole ロールがデフォルトで割り当てられ、アカウント B の所有する全 OSS バケットに書き込むことができるようになります。

より詳細にアクセス制御する必要ある場合は、AliyunLogDefaultRole ロールより AliyunLogRolePolicy 権限を削除し、より詳細なポリシーを作成し、そのポリシーを AliyunLogDefaultRole ロールに割り当てます。 詳細は、「 OSS へのアクセス権を付与 」をご参照ください。

アカウント間の転送

Log Service プロジェクトおよび OSS バケットが、別々の Alibaba Cloud アカウントで作成したものである場合、次の方法でポリシーを設定します。

たとえば、アカウント A の Log Service データをアカウント B の作成した OSS バケットに転送するとします。

  1. アカウント B は、AliyunLogDefaultRole ロールを作成して、作成したロールに OSS への書き込み権限を割り当てます。詳細は、「OSS へのログ転送」をご参照ください。
  2. RAM コンソールにログインして左側のメニューのロール管理をクリックします。ロール名「AliyunLogDefaultRole」をクリックすると、ロールの基本情報が表示されます。

    ロールを行使することのできるユーザーは、ロールの Serviceに記述されています。なお、log.aliyuncs.comは、現在のアカウントがこのロールを行使して OSS に書き込むことができることを示します。

  3. ロールのServiceA_ALIYUN_ID@log.aliyuncs.comを追加します。アカウント管理 > セキュリティ設定より、メインアカウント A の ID が追加されているかどうかを確認します。
    アカウント A の ID が「1654218***********」の場合、ロールには次のように記述します。
    {
    "Statement": [
     {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
         "Service": [
           "***********@log.aliyuncs.com",
           "log.aliyuncs.com"
         ]
       }
     }
    ],
    "Version": "1"
    }
    上記ロールには、アカウント A が Log Service を介して一時トークンを取得し、アカウント B のリソースを操作する権限が付与されていることが記述されています。ロールの記述方法については、「ポリシー管理」をご参照ください。
  4. 以上で、アカウント A で転送タスクが生成されるようになります。生成される転送タスクの RAM ロールフィールドには、OSS バケット所有者の RAM ロール識別子 ARN (アカウント B の作成した RAM ロール AliyunLogDefaultRole) を指定します。

    RAM ロールの ARN は、基本情報で確認します。書式はacs:ram::13234:role/logroleです。

サブアカウントとメインアカウント間の転送

メインアカウント A のサブアカウント a_1 が、アカウント B の OSS バケットへのログ転送タスクを生成できるようにするには、メインアカウント A が、サブアカウント a_1 に PassRole ロールを割り当てる必要があります。

設定方法は次のとおりです。

  1. アカウント B はクイック許可を行い、ロールに記述を追加します。詳細は、「アカウント間の転送」をご参照ください。
  2. メインアカウント A は RAM コンソールにログインして、サブアカウント a_1 に AliyunRAMFullAccess 権限を与えます。
    1. ユーザー管理ページで、サブアカウント a_1 の右側の許可をクリックします。
    2. ポリシー一覧リストよりAliyunRAMFullAccess許可したポリシーリストに追加します。確認をクリックします。

      許可が正常に完了すると、a_1 は RAM を操作する全権限を有することになります。

      a_1 の権限を限定し、OSS へのログ転送のみを実行できるようにするには、メインアカウント A は ActionおよびResourceパラメータを変更します。

      Resourceの値を AliyunLogDefaultRole の ARN に置き換えます。ポリシーは次のようになります。

      {
      "Statement": [
      {
      "Action": "ram:PassRole",
      "Effect": "Allow",
      "Resource": "acs:ram::1111111:role/aliyunlogdefaultrole"
      }
      ],
      "Version": "1"
      }
    3. 以上で、サブアカウント a_1 で転送タスクが生成されるようになります。生成される転送タスクの RAM ロールフィールドには、OSS バケット所有者のRAM ロール識別子である ARN (クイック許可でアカウント B の作成した RAM ロール AliyunLogDefaultRole) を指定します。