OSS 転送タスクを実行する前に、OSS バケットの所有者は クイック許可 を行う必要があります。権限を付与されると Log Service より OSS に書き込むことができるようになります。
本ドキュメントでは、さまざまなシナリオにおいて、RAM で権限を付与して OSS 転送タスクが実行されるようにする方法について説明します。
- OSS バケットに対するアクセス制御をより詳細に指定する場合は、「ポリシーの変更」をご参照ください。
- Log Service プロジェクトおよび OSS バケットが別々の Alibaba Cloud アカウントで作成されている場合は、 「アカウント間の転送」をご参照ください 。
- サブアカウント (RAM ユーザー) が、別の Alibaba Cloud アカウントの OSS バケットにログデータを送信する必要がある場合は、「サブアカウントとメインアカウント間の転送」をご参照ください。
- サブアカウント (RAM ユーザー) が、そのメインアカウントのログデータを同メインアカウントの OSS バケットに送信する必要がある場合は、「サブアカウントに Log Service へのアクセス権限を付与」をご参照ください。
ポリシーの変更
クイック許可を完了すると、AliyunLogRolePolicy に AliyunLogDefaultRole ロールがデフォルトで割り当てられ、アカウント B の所有する全 OSS バケットに書き込むことができるようになります。
より詳細にアクセス制御する必要ある場合は、AliyunLogDefaultRole ロールより AliyunLogRolePolicy 権限を削除し、より詳細なポリシーを作成し、そのポリシーを AliyunLogDefaultRole ロールに割り当てます。 詳細は、「 『OSS へのアクセス権を付与』 」をご参照ください。
アカウント間の転送
Log Service プロジェクトおよび OSS バケットが、別々の Alibaba Cloud アカウントで作成したものである場合、次の方法でポリシーを設定します。
たとえば、アカウント A の Log Service データをアカウント B の作成した OSS バケットに転送するとします。
- アカウント B は、AliyunLogDefaultRole ロールを作成して、作成したロールに OSS への書き込み権限を割り当てます。詳細は、「OSS へのログ転送」をご参照ください。
- RAM コンソールにログインして左側のメニューのロール管理をクリックします。ロール名「AliyunLogDefaultRole」をクリックすると、ロールの基本情報が表示されます。
ロールを行使することのできるユーザーは、ロールの
Service
に記述されています。なお、log.aliyuncs.com
は、現在のアカウントがこのロールを行使して OSS に書き込むことができることを示します。 - ロールの
Service
にA_ALIYUN_ID@log.aliyuncs.com
を追加します。 より、メインアカウント A の ID が追加されているかどうかを確認します。アカウント A の ID が「1654218***********」の場合、ロールには次のように記述します。上記ロールには、アカウント A が Log Service を介して一時トークンを取得し、アカウント B のリソースを操作する権限が付与されていることが記述されています。ロールの記述方法については、「ポリシー管理」をご参照ください。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "***********@log.aliyuncs.com", "log.aliyuncs.com" ] } } ], "Version": "1" }
- 以上で、アカウント A で転送タスクが生成されるようになります。生成される転送タスクの RAM ロールフィールドには、OSS バケット所有者の RAM ロール識別子 ARN (アカウント B の作成した RAM ロール AliyunLogDefaultRole) を指定します。
RAM ロールの ARN は、基本情報で確認します。書式は
acs:ram::13234:role/logrole
です。
サブアカウントとメインアカウント間の転送
メインアカウント A のサブアカウント a_1 が、アカウント B の OSS バケットへのログ転送タスクを生成できるようにするには、メインアカウント A が、サブアカウント a_1 に PassRole ロールを割り当てる必要があります。
設定方法は次のとおりです。
- アカウント B はクイック許可を行い、ロールに記述を追加します。詳細は、「アカウント間の転送」をご参照ください。
- メインアカウント A は RAM コンソールにログインして、サブアカウント a_1 に AliyunRAMFullAccess 権限を与えます。
- ユーザー管理ページで、サブアカウント a_1 の右側の許可をクリックします。
- ポリシー一覧リストより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" }
- 以上で、サブアカウント a_1 で転送タスクが生成されるようになります。生成される転送タスクの RAM ロールフィールドには、OSS バケット所有者のRAM ロール識別子である ARN (クイック許可でアカウント B の作成した RAM ロール AliyunLogDefaultRole) を指定します。