edit-icon download-icon

権限の概要

最終更新日: Nov 30, 2018

Resource Access Management (RAM) は、Alibaba Cloud の提供するサービスで、権限レベルにより、リソースへのアクセスを管理します。

Function Compute は、RAM ロールに必要な権限を付与します。具体的には、Function Compute が特定のポリシー (特定のプロダクトにアクセス可) をロールに割り当てると、ロールはプロダクトにアクセスできるようになります。サードパーティがそのプロダクトにアクセスする必要がある場合、サードパーティはプロダクトへのアクセス権限を持つロールを引き受けることができます。

ユースケース

アプリケーションの構築に Function Compute を使用する場合、複数のアクセス権限を管理する必要があります。たとえば、

  • Alibaba Cloud の Log Service を使用して関数実行のログエントリを収集するには、指定した Logstore に書き込む権限を Function Compute に付与します。

  • Alibaba Cloud の Object Storage Service (OSS) のトリガーを使用するには、OSS に関数を呼び出す権限を付与します。

  • アカウントのリソース(たとえば OSS のデータ)にアクセスする必要がある場合、RAM ロールを作成し、ロールに必要な権限を付与します。Function Compute は関数を実行できるようロールを引き継ぎます。

権限の種類

Alibaba Cloud のプロダクトにアクセスするには、そのプロダクトにアクセスする権限が必要です。
Function Compute に関係する権限は以下の2種類があります。

  • Function Compute が他の Alibaba Cloud プロダクトにアクセスするための権限。この権限を Function Compute に付与する必要があります。

  • イベントソースに Function Compute にアクセスして関数実行がトリガーされるようにするための権限。この権限をイベントソースに付与する必要があります。

プロダクトへのアクセス権限

Function Compute では、Function Compute に直接ポリシーが割り当てられ、ロールはサービスに紐づけられます。サービスの作成時、または、更新時にロールを設定できます。サービス配下のすべての関数は、そのロールのポリシーを引き継ぎます。

Function Compute が Log Service にアクセスできるようにする手順は、次のとおりです。

  1. Function Compute が Log Service に対してすべての操作が行えるよう、RAM は Function Compute にAliyunLogFullAccessポリシーを割り当てます。

  2. サービスを作成するときに、サービスにロールを割り当てます。新たにロールを作成するか、既存のロールを使用します。

  3. ロールにAliyunLogFullAccessポリシーを割り当てます。

上記の手順を実行すると、Function Compute は Log Service にアクセスできるようになります。

service role

コンソールでロールを設定

次の例は、サービス作成時にロールを設定する方法を示します。

  1. コンソール にログインします。

  2. [サービスの作成] をクリックします。

  3. [ロール設定] 欄で、[新しいロールを作成] を選択してドロップダウンリストよりロールを選択します。

    RoleConfig

次の例はサービス更新時にロールを設定する方法を示します。

  1. コンソール にログインします。

  2. リージョンを選択します。

  3. サービスを1つ選択して、[詳細設定] の [編集] をクリックします。

    EditServices

  4. 下にスクロールして [ロール設定] 欄で [新しいロールを作成] を選択します。ドロップダウンリストよりロールを選択します。

fcli を使用してロールを設定

次のコマンドで、12345をお客様の Alibaba Cloud アカウント ID に置き換えます。

  1. // fc-service-role という名の RAM ロールを作成します。
  2. mksr fc-service-role
  3. // fc-oss-gp という名のポリシーを作成して OSS へのリソースの読み込みおよび書き込みが行えるようにします。
  4. mkrp fc-oss-gp -a '["oss:GetObject", "oss:PutObject"]' -r '"*"'
  5. // ロール「fc-service-role」にポリシー「fc-oss-gp」を割り当てて、ロールが OSS へのリソースの読み込みおよび書き込みが行えるようします。
  6. attach -p /ram/policies/fc-oss-gp -r /ram/roles/fc-service-role
  7. // 「oss_demo」という名のサービスを作成してロール「fc-service-role」を紐づけます。「oss_demo」サービスの関数はすべてロール「fc-service-role」により OSS からリソースを読み込み、OSS にリソースを書き込めるようにします。
  8. mks oss_demo -r acs:ram::12345:role/fc-service-role

トリガーの権限

この権限は特定プロダクトのイベントソースに権限を付与し、Function Compute でコード実行をトリガーできるようにします。Function Compute の代わりに他のプロダクトにも権限を付与します。たとえば、OSS トリガーを使用する場合、OSS にオブジェクトがアップロードされたときや OSS よりオブジェクトが削除されたときに関数が実行されるよう OSS イベントソースに権限を付与する必要があります。

トリガーを作成する際に、トリガーにロールを設定します。イベントソースがトリガーされると、このロールにより該当関数が実行されます。

trigger role

コンソールでトリガーにロールを設定

  1. コンソール にログインします。

  2. トリガーを作成するには、「トリガー操作」をご参照ください。

    [ロール操作] には [新しいロールを作成] を選択します。

    trigger role

fcli を使用してトリガーにロールを設定

次のコマンドでは、12345をお客様の Alibaba Cloud アカウント ID に置き換えます。

  1. // トリガーの作成
  2. mkt testTrigger -t oss -r acs:ram::12345:role/AliyunOSSEventNotificationRole -s acs:oss:cn-shanghai:12345:bucketName -c ossTrigger.yaml

ossTrigger.yaml ファイルの中身は次のとおりです。

  1. triggerConfig:
  2. events:
  3. - oss:ObjectCreated:PostObject
  4. - oss:ObjectCreated:PutObject
  5. filter:
  6. key:
  7. prefix: source/