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

Function Compute:ポリシーとサンプルポリシー

最終更新日:Sep 09, 2024

Alibaba Cloudは、Function Computeの権限を管理するためのRAM (Resource Access Management) を提供しています。 RAMを使用する場合、Alibaba CloudアカウントのAccessKeyペアを他のユーザーと共有する必要はありません。 代わりに、最低限必要な権限のみを付与できます。 AccessKeyペアには、AccessKey IDとAccessKeyシークレットが含まれます。 このトピックでは、システムポリシーやカスタムポリシーなど、Function Computeのポリシーについて説明します。 このトピックでは、サンプルのカスタムポリシーも提供します。

タイプ

RAMでは、ポリシーはポリシー構文と構造に基づいて記述される一連の権限です。 ポリシーは、許可されたリソースセット、アクションセット、および許可条件を正確に記述します。 Function Computeのポリシーには、次の種類があります。

  • システムポリシー: Alibaba Cloudによって作成されたポリシー。 これらのポリシーは使用できますが、変更することはできません。 Alibaba Cloudは、ポリシーのバージョン更新を維持します。

  • カスタムポリシー: 作成、更新、および削除できるポリシー。 これらのポリシーのバージョン更新を維持します。

システムポリシー

初めてRAMユーザーとしてFunction Computeコンソールにログインする前に、Alibaba Cloudアカウントを使用して、Function Computeにアクセスするためのシステムポリシーと他のAlibaba CloudサービスにアクセスするためのシステムポリシーをRAMユーザーにアタッチする必要があります。 RAMユーザーとしてFunction Computeを含むAlibaba Cloudサービスにアクセスできるのは、システムポリシーがRAMユーザーにアタッチされた場合のみです。

システムポリシーには、次の種類があります。

  • Function Computeのシステムポリシー

    ポリシー

    説明

    AliyunFCReadOnlyAccess

    すべてのFunction Computeリソースに対する読み取り専用権限。

    AliyunFCInvocationAccess

    すべての関数を呼び出す権限。

    AliyunFCFullAccess

    すべてのFunction Computeリソースを管理する権限。

    説明

    AliyunFCFullAccessポリシーで定義されたすべてのFunction Computeリソースを管理する権限には、AliyunFCInvocationAccessポリシーで定義されたすべての関数を呼び出す権限と、AliyunFCReadOnlyAccessポリシーで定義されたすべてのFunction Computeリソースに対する読み取り専用権限が含まれます。 AliyunFCFullAccessポリシーをRAMユーザーにアタッチした後、AliyunFCInvocationAccessまたはAliyunFCReadOnlyAccessポリシーをRAMユーザーにアタッチする必要はありません。

  • 他のAlibaba Cloudサービスのシステムポリシー

    Alibaba Cloudサービス

    システムポリシー

    Log Service

    • AliyunLogReadOnlyAccess: すべてのLog Serviceリソースに対する読み取り専用権限。

    • AliyunLogFullAccess: すべてのLog Serviceリソースを管理するための権限。

    説明

    RAMユーザーとしてLog Serviceにアクセスするには、最小権限の原則に基づいて、AliyunLogReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

    Object Storage Service (OSS)

    • AliyunOSSReadOnlyAccess: すべてのOSSリソースに対する読み取り専用権限。

    • AliyunOSSFullAccess: すべてのOSSリソースを管理するための権限。

    CloudMonitor

    AliyunCloudMonitorReadOnlyAccess: すべてのCloudMonitorリソースに対する読み取り専用権限。

    SSL Certificates Service

    AliyunYundunCertReadOnlyAccess: すべてのSSL証明書サービスリソースに対する読み取り専用権限。

    Virtual Private Cloud

    AliyunVPCReadOnlyAccess: すべてのVPCリソースに対する読み取り専用権限。

    Elastic Compute Service (ECS)

    AliyunECSReadOnlyAccess: すべてのECSリソースに対する読み取り専用権限。

    Resource Access Management (RAM)

    • AliyunRAMReadOnlyAccess: ユーザー、グループ、および権限情報を表示する権限を含む、すべてのRAMリソースに対する読み取り専用権限。

    • AliyunRAMFullAccess: すべてのRAMリソースを管理するための権限 (ユーザーの管理と権限付与の権限を含む) 。

    説明

    RAMユーザーにAliyunRAMReadOnlyAccessポリシーのみをアタッチする場合、RAMユーザーとしてコンソールで取得できるのはロールのリストのみです。 RAMユーザーとして他の操作を実行する必要がある場合は、AliyunRAMFullAccessポリシーをRAMユーザーにアタッチする必要があります。

    Application Real-Time Monitoring Service

    • AliyunARMSReadOnlyAccess: ARMSリソースに対する読み取り専用権限。

    • AliyunARMSFullAccess: ARMSリソースを管理するための権限。

    説明

    RAMユーザーとしてARMSにアクセスするには、最小権限の原則に基づいて、AliyunARMSReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

    Message Service (MNS)

    • AliyunMNSReadOnlyAccess: すべてのMNSリソースに対する読み取り専用権限。

    • AliyunMNSFullAccess: すべてのMNSリソースを管理するための権限。

    説明

    RAMユーザーとしてMNSにアクセスするには、最小権限の原則に基づいて、AliyunMNSReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

    EventBridge

    • AliyunEventBridgeReadOnlyAccess: すべてのEventBridgeリソースに対する読み取り専用権限。

    • AliyunEventBridgeFullAccess: すべてのEventBridgeリソースを管理するための権限。

    説明

    RAMユーザーとしてEventBridgeにアクセスするには、最小権限の原則に基づいて、AliyunEventBridgeReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

    Message Queue for Apache RocketMQ

    • AliyunMQReadOnlyAccess: Apache RocketMQリソースのすべてのMessage Queueに対する読み取り専用権限。

    • AliyunMQFullAccess: Apache RocketMQリソースのすべてのMessage Queueを管理するための権限。

    説明

    RAMユーザーとしてApache RocketMQのMessage Queueにアクセスするには、最小権限の原則に基づいて、AliyunMQReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

    Container Registry

    • AliyunContainerRegistryReadOnlyAccess: すべてのContainer Registryリソースに対する読み取り専用権限。

    • AliyunContainerRegistryFullAccess: すべてのContainer Registryリソースを管理するための権限。

    説明

    RAMユーザーとしてContainer Registryにアクセスするには、最小権限の原則に基づいて、AliyunContainerRegistryReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

    Apsara File Storage NAS

    • AliyunNASReadOnlyAccess: すべてのNASリソースに対する読み取り専用権限。

    • AliyunNASFullAccess: すべてのNASリソースを管理するための権限。

    説明

    RAMユーザーとしてNASにアクセスするには、最小権限の原則に基づいて、AliyunNASReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

    ApsaraDB RDS

    • AliyunRDSReadOnlyAccess: すべてのApsaraDB RDSリソースに対する読み取り専用権限。

    • AliyunRDSFullAccess: すべてのApsaraDB RDSリソースを管理するための権限。

    説明

    RAMユーザーとしてApsaraDB RDSにアクセスするには、最小権限の原則に基づいて、AliyunRDSReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

    Apsara Devops

    • AliyunRDCReadOnlyAccess: Apsara DevOps RDCリソースに対する読み取り専用権限。

    • AliyunRDCFullAccess: Apsara DevOps RDCリソースを管理するための権限。

    説明

    RAMユーザーとしてApsaraDB RDSにアクセスするには、最小権限の原則に基づいて、AliyunRDCReadOnlyAccessポリシーのみをRAMユーザーにアタッチする必要があります。

重要

たとえば、Alibaba Cloudアカウントを使用してAliyunOSSFullAccessポリシーをRAMユーザーにアタッチするなど、トリガーに関連する権限を付与した後にOSSイベントトリガーをRAMユーザーとして更新できない場合は、Alibaba Cloudアカウントを使用して次のカスタムポリシーをRAMユーザーにアタッチします。 カスタムポリシーがアタッチされた後、OSSイベントトリガーをRAMユーザーとして更新できます。

 {
        "Statement": [
            {
                "Action": [
                    "ram:PassRole"
                ],
                "Effect": "Allow",
                "Resource": "*"
            }
        ],
        "Version": "1"
    }

カスタムポリシー

Function Computeは、システムポリシーに加えて、RAMユーザーにきめ細かい権限を付与できるカスタムポリシーをサポートしています。 ポリシーの要素の詳細については、「ポリシー要素」をご参照ください。

リソース

Action

説明

acs:fc:<region >:< account-id>:services/<serviceName>

fc:GetService

指定されたサービス。

fc:UpdateService

fc:DeleteService

acs:fc:<region >:< account-id>:services/*

fc:CreateService

すべてのサービス。

fc:ListServices

acs:fc:<region >:< account-id>:services/<serviceName> 。<qualifier>

fc:GetService

指定されたバージョンのサービス。

acs:fc:<region >:< account-id>:services/<serviceName>/functions/<functionName>

fc:GetFunction

指定されたサービスで指定された関数。

fc:UpdateFunction

fc:DeleteFunction

fc:InvokeFunction

acs:fc:<region >:< account-id>:services/<serviceName>/functions/*

fc:CreateFunction

指定されたサービスのすべての関数。

fc:ListFunctions

acs:fc:<region >:< account-id>:services/<serviceName>.*/functions/<functionName>

fc:GetFunction

指定されたサービスのすべてのバージョンのすべての関数。

fc:UpdateFunction

fc:DeleteFunction

fc:InvokeFunction

fc:PutProvisionConfig

fc:GetProvisionConfig

fc:PutFunctionOnDemandConfig

fc:DeleteFunctionOnDemandConfig

fc:PutFunctionAsyncInvokeConfig

fc:DeleteFunctionAsyncInvokeConfig

fc:GetFunctionAsyncInvokeConfig

fc:GetFunctionOnDemandConfig

acs:fc:<region >:< account-id>:services/<serviceName>/functions/<functionName>/triggers/<triggerName>

fc:GetTrigger

指定されたサービス内の指定された関数の指定されたトリガー。

fc:UpdateTrigger

fc:DeleteTrigger

acs:fc:<region >:< account-id>:services/<serviceName>/functions/<functionName>/triggers/*

fc:CreateTrigger

指定されたサービス内の指定された関数のすべてのトリガー。

fc:ListTriggers

acs:fc:<region >:< account-id>:services/<serviceName>/versions

fc:PublishServiceVersion

すべてのサービスバージョン。

fc:ListServiceVersions

acs:fc:<region >:< account-id>:services/<serviceName>/versions/<versionId>

fc:DeleteServiceVersion

指定されたサービスバージョン。

acs:fc:<region >:< account-id>:services/<serviceName>/aliases/*

fc:CreateAlias

すべてのサービスのエイリアス。

fc:ListAliases

acs:fc:<region >:< account-id>:services/<serviceName>/aliases/<aliasName>

fc:GetAlias

指定されたサービスエイリアス。

fc:UpdateAlias

fc:DeleteAlias

acs:fc:<region >:< account-id>:custom-domains/*

fc:CreateCustomDomain

すべてのカスタムドメイン名。

fc:ListCustomDomains

acs:fc:<region >:< account-id>: カスタムドメイン /<domainName>

fc:GetCustomDomain

指定されたカスタムドメイン名。

fc:UpdateCustomDomain

fc:DeleteCustomDomain

acs:fc:<region >:< account-id>:tag

fc:TagResource

単一のタグ。

fc:GetResourceTags

fc:UnTagResource

acs:fc:<region >:< account-id>:tags/*

fc:ListTaggedResources

すべてのタグ。

acs:fc:<region >:< account-id>:account-settings/*

fc:GetAccountSettings

アカウントの設定。

acs:fc:<region >:< account-id>:layerarn/<arn>

fc:GetLayerVersionByArn

すべてのレイヤー。

acs:fc:<region >:< account-id>:layers/*

fc:ListLayers

acs:fc:<region >:< account-id>:layers/<layerName>/versions/<versionId>

fc:PublishLayerAsPublic

acs:fc:<region >:< account-id>:layers/<layerName>/versions/*

fc:ListLayerVersions

すべてのレイヤーバージョン。

fc:CreateLayerVersion

acs:fc:<region >:< account-id>:layers/<layerName>/versions/<versionId>

fc:GetLayerVersion

fc:DeleteLayerVersion

acs:fc:<region >:< account-id>:on-demand-configs/*

fc:ListOnDemandConfigs

オンデマンド設定。

acs:fc:<region >:< account-id>:provision-configs/*

fc:ListProvisionConfigs

プロビジョニングされた設定。

acs:fc:<region >:< account-id>:services/<serviceName>/binding

fc:DeleteVpcBinding

VPC設定。

acs:fc:<region >:< account-id>:services/<serviceName>/binding/*

fc:CreateVpcBinding

fc:ListVpcBindings

acs:fc:<region >:< account-id>:services/<serviceName>/functions/<functionName>/async-invoke-configs/*

fc:ListFunctionAsyncInvokeConfigs

非同期呼び出し設定。

acs:fc:<region >:< account-id>:services/<serviceName>/functions/<functionName>/code

fc:GetFunctionCode

すべての関数コード。

acs:fc:<region >:< account-id>:services/<serviceName>/functions/<functionName>/stateful-async-invocations/*

fc:ListStatefulAsyncInvocations

非同期タスク

acs:fc:<region >:< account-id>:services/<serviceName>/functions/<functionName>/stateful-async-invocations/<invocationId>

fc:GetStatefulAsyncInvocation

fc:StopStatefulAsyncInvocation

上記の操作とリソースを使用して、中国 (杭州) リージョンのtestサービスでdemo関数を呼び出す権限を付与するために使用される次のカスタムポリシーを定義できます。

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "fc:InvokeFunction"
            ],
            "Resource": "acs:fc:cn-hangzhou:*:services/test/functions/demo",
            "Effect": "Allow"
        }
    ]
}

サンプルポリシー

Function Computeでサービスを作成および照会し、関数を作成および呼び出す権限を持つカスタムポリシー

{
"Version":"1",
"Statement":[
{
"Action":[
"fc:CreateService",
"fc:GetService",
"fc:CreateFunction",
"fc:GetFunction",
"fc:InvokeFunction"
],
"Resource":"*",
"Effect":"Allow"
},
{
"Action":[
"ram:PassRole"
],
"Effect":"Allow",
"Resource":"*"
}
]
}

ログへのアクセス許可を付与するために使用されるカスタムポリシー

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "log:ListProject",
                "log:ListLogStore"
            ],
            "Resource": "acs:log:*:*:project/*"
        }
    ]
}

OSSイベントトリガーにアクセスする権限を付与するために使用されるカスタムポリシー

{
  "Statement": [
    {
      "Action": [
        "oss:ListBucket",
        "oss:GetBucketEventNotification",
        "oss:PutBucketEventNotification",
        "oss:DeleteBucketEventNotification"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

インターネットにアクセスできるサービスを作成できないカスタムポリシー

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:UpdateService",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableServiceInternetAccess": "true"
        }
      }
    },
    {
      "Action": "fc:CreateService",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "fc:EnableServiceInternetAccess": "false"
        }
      }
    }
  ]
}

Log Serviceにアクセスできないサービスを作成できないカスタムポリシー

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:UpdateService",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableServiceSLSLogging": "false"
        }
      }
    },
    {
      "Action": "fc:CreateService",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "fc:EnableServiceSLSLogging": "true"
        }
      }
    }
  ]
}

インターネット経由でアクセスできるトリガーを作成できないカスタムポリシー

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:UpdateTrigger",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableHTTPTriggerAnonymous": "true"
        }
      }
    },
    {
      "Action": "fc:CreateTrigger",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableHTTPTriggerAnonymous": "true"
        }
      }
    }
  ]
}