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

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

最終更新日:Jun 13, 2025

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

ポリシータイプ

RAM では、ポリシーはポリシーの構造と構文に基づいて定義された一連の権限です。ポリシーは、承認されたリソースセット、アクションセット、および承認条件を正確に定義します。 Function Compute のポリシーには、次のタイプがあります。

  • システムポリシー: システムポリシーは Alibaba Cloud によって作成および更新されます。システムポリシーは使用できますが、変更することはできません。

  • カスタムポリシー: カスタムポリシーは、作成、更新、および削除できます。カスタムポリシーのバージョンを維持する必要があります。

システムポリシー

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

次の項目は、さまざまなタイプのシステムポリシーを示しています。

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

    ポリシー名

    説明

    AliyunFCReadOnlyAccess

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

    AliyunFCInvocationAccess

    関数を呼び出す権限。

    AliyunFCFullAccess

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

    説明

    AliyunFCFullAccess ポリシーには、AliyunFCInvocationAccess ポリシーと AliyunFCReadOnlyAccess ポリシーの権限が含まれています。 AliyunFCFullAccess ポリシーを RAM ユーザーにアタッチした後、AliyunFCInvocationAccess ポリシーまたは AliyunFCReadOnlyAccess ポリシーを RAM ユーザーにアタッチする必要はありません。

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

    Alibaba Cloud サービス

    システムポリシー

    Simple Log Service

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

    • AliyunLogFullAccess: Simple Log Service リソースを管理する権限。

    説明

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

    Object Storage Service (OSS)

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

    • AliyunOSSFullAccess: OSS リソースを管理する権限。

    CloudMonitor

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

    Certificate Management Service

    AliyunYundunCertReadOnlyAccess: Certificate Management Service リソースに対する読み取り専用権限。

    Virtual Private Cloud (VPC)

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

    Elastic Compute Service (ECS)

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

    RAM

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

    • AliyunRAMFullAccess: ユーザーの管理と権限の付与を含む、RAM リソースを管理する権限。

    説明

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

    Application Real-Time Monitoring Service (ARMS)

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

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

    説明

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

    Simple Message Queue (formerly MNS)

    • AliyunMNSReadOnlyAccess: Simple Message Queue (formerly MNS) リソースに対する読み取り専用権限。

    • AliyunMNSFullAccess: Simple Message Queue (formerly MNS) リソースを管理する権限。

    説明

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

    EventBridge

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

    • AliyunEventBridgeFullAccess: EventBridge リソースを管理する権限。

    説明

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

    ApsaraMQ for RocketMQ

    • AliyunMQReadOnlyAccess: ApsaraMQ for RocketMQ リソースに対する読み取り専用権限。

    • AliyunMQFullAccess: ApsaraMQ for RocketMQ リソースを管理する権限。

    説明

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

    Container Registry

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

    • AliyunContainerRegistryFullAccess: Container Registry リソースを管理する権限。

    説明

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

    NAS ファイルシステム (NAS)

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

    • AliyunNASFullAccess: NAS リソースを管理する権限。

    説明

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

    ApsaraDB RDS

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

    • AliyunRDSFullAccess: ApsaraDB RDS リソースを管理する権限。

    説明

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

    Alibaba Cloud DevOps

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

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

    説明

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

重要

トリガー関連のポリシー (例: AliyunOSSFullAccess) を Alibaba Cloud アカウントを使用して RAM ユーザーにアタッチした後に、RAM ユーザーとしてトリガーを更新できない場合は、Alibaba Cloud アカウントを使用して次のカスタムポリシーを RAM ユーザーにアタッチする必要があります。カスタムポリシーがアタッチされると、RAM ユーザーとして OSS イベントトリガーを更新できます。

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

カスタムポリシー

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

操作

リソース

説明

fc:GetAsyncTask

acs:fc:{region}:{uid}:functions/{functionName}/async-tasks/{taskId}

非同期タスク

fc:非同期タスクの停止

acs:fc:{region}:{uid}:functions/{functionName}/async-tasks/{taskId}

fc:ListAsyncTasks

acs:fc:{region}:{uid}:functions/{functionName}/async-tasks/*

fc:ListFunctionAsyncInvokeConfigs

acs:fc:{region}:{uid}:async-invoke-configs/* acs:fc:{region}:{uid}:functions/{functionName}

非同期呼び出し構成

fc:ListConcurrencyConfigs

acs:fc:{region}:{uid}:concurrency-configs/* acs:fc:{region}:{uid}:functions/{functionName}

同時実行設定

fc:カスタムドメインの一覧表示

acs:fc:{region}:{uid}:custom-domains/*

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

fc:GetCustomDomain

acs:fc:{region}:{uid}:custom-domains/{domainName}

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

fc:カスタムドメインの削除

カスタムドメインの更新

fc:カスタムドメインの作成

fc:ListFunctions

acs:fc:{region}:{uid}:functions/*

すべての関数リソース

fc:DeleteConcurrencyConfig

acs:fc:{region}:{uid}:functions/{functionName}

fc:PutConcurrencyConfig

acs:fc:{region}:{uid}:functions/{functionName}

fc:DeleteFunction

acs:fc:{region}:{uid}:functions/{functionName}

fc:UpdateFunction

acs:fc:{region}:{uid}:functions/{functionName}

fc:CreateFunction

acs:fc:{region}:{uid}:functions/{functionName}

fc:GetConcurrencyConfig

acs:fc:{region}:{uid}:functions/{functionName}

fc:GetFunction

acs:fc:{region}:{uid}:functions/{functionName}

fc:ListAliases

acs:fc:{region}:{uid}:functions/{functionName}/aliases/*

すべてのエイリアス

fc:CreateAlias

acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName}

指定されたエイリアス

fc:UpdateAlias

acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName}

fc:GetAlias

acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName}

fc:DeleteAlias

acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName}

fc:ListInstances

acs:fc:{region}:{uid}:functions/{functionName}/instances/*

インスタンス情報

fc:ListTriggers

acs:fc:{region}:{uid}:functions/{functionName}/triggers/*

指定された関数のすべてのトリガーリソース

fc:CreateTrigger

acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName}

指定された関数の特定のトリガーリソース

fc:UpdateTrigger

acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName}

fc:GetTrigger

acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName}

fc:DeleteTrigger

acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName}

fc:PublishFunctionVersion

acs:fc:{region}:{uid}:functions/{functionName}/versions

すべてのバージョン

fc:ListFunctionVersions

acs:fc:{region}:{uid}:functions/{functionName}/versions/*

fc:DeleteFunctionVersion

acs:fc:{region}:{uid}:functions/{functionName}/versions/{versionId}

指定されたバージョン

fc:ListVpcBindings

acs:fc:{region}:{uid}:functions/{functionName}/vpc-bindings/*

VPC の構成

fc:CreateVpcBinding

acs:fc:{region}:{uid}:functions/{functionName}/vpc-bindings/*

fc:DeleteVpcBinding

acs:fc:{region}:{uid}:functions/{functionName}/vpc-bindings/{vpcId}

fc:GetFunctionCode

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

すべての機能コード

fc:GetFunctionAsyncInvokeConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

すべての関数リソース

プロビジョニング構成の削除

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:PutProvisionConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:InvokeFunction

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:PutFunctionAsyncInvokeConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:GetProvisionConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:DeleteFunctionAsyncInvokeConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:GetLayerVersionByArn

acs:fc:{region}:{uid}:layerarn/{arn}

すべてのレイヤー

fc:ListLayers

acs:fc:{region}:{uid}:layers/*

fc:PutLayerACL

acs:fc:{region}:{uid}:layers/{layerName}

fc:ListLayerVersions

acs:fc:{region}:{uid}:layers/{layerName}/versions/*

fc:CreateLayerVersion

acs:fc:{region}:{uid}:layers/{layerName}/versions/*

fc:DeleteLayerVersion

acs:fc:{region}:{uid}:layers/{layerName}/versions/{version}

fc:GetLayerVersion

acs:fc:{region}:{uid}:layers/{layerName}/versions/{version}

fc:ListProvisionConfigs

acs:fc:{region}:{uid}:provision-configs/* acs:fc:{region}:{uid}:functions/{functionName}

プロビジョニングされたインスタンス構成

上記の カスタムポリシー を使用して、中国 (杭州) リージョンで デモ 関数を呼び出す権限を構成できます。次の コード スニペット は詳細を示しています。

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "fc:InvokeFunction" // 関数の呼び出し
            ],
            "Resource": "acs:fc:cn-hangzhou:*:functions/demo", // 中国 (杭州) リージョンの demo 関数
            "Effect": "Allow" // 許可
        }
    ]
}

サンプルポリシー

サービスの作成とクエリ、および関数の作成と呼び出しを行うためのカスタムポリシー

{
	"Version": "1",
	"Statement": [{
			"Action": [
				"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:UpdateFunction",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableServiceInternetAccess": "true"
        }
      }
    },
    {
      "Action": "fc:CreateFunction",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "fc:EnableServiceInternetAccess": "false"
        }
      }
    }
  ]
}

Simple Log Service にアクセスできないサービスの作成を禁止するカスタムポリシー

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

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

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

このポリシーは、CreateTrigger 操作と UpdateTrigger 操作で、ユーザーが disableURLInternet パラメーターを false に設定することを禁止します。 このパラメーターの値は、デフォルトのパブリックドメイン名がサポートされていないことを示す true にのみ設定できます。 この制限は、HTTP トリガーにのみ適用されます。 詳細については、「HTTPTriggerConfig」をご参照ください。

この場合、disableURLInternet=false を設定すると、403 AccessDenied エラーが報告されます。 次のコードは例を示しています。

{
  "statusCode":403,
  "Code":"AccessDenied",
  "Message":"the caller is not authorized to perform 'fc:CreateTrigger' on resource 'acs:fc:xx:xx:functions/xx/triggers/xx' with condition '[fc:EnableHTTPTriggerInternet=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"
        }
      }
    }
  ]
}

このポリシーは、CreateTrigger 操作と UpdateTrigger 操作で、ユーザーが authType パラメーターを anonymous に設定することを禁止します。 このパラメーターの値は、認証が必要であることを指定する function にのみ設定できます。 この制限は、HTTP トリガーにのみ適用されます。 詳細については、「HTTPTriggerConfig」をご参照ください。

この場合、authType=anonymous を設定すると、403 AccessDenied エラーが報告されます。 次のコードは例を示しています。

{
  "statusCode":403,
  "Code":"AccessDenied",
  "Message":"the caller is not authorized to perform 'fc:CreateTrigger' on resource 'acs:fc:xx:xx:functions/xx/triggers/xx' with condition '[fc:EnableHTTPTriggerAnonymous=true]'"
}

HTTP リクエストを許可するカスタムドメイン名の作成を禁止するカスタムポリシー

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:CreateCustomDomain",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableCustomDomainHTTP": "true"
        }
      }
    },
    {
      "Action": "fc:UpdateCustomDomain",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableCustomDomainHTTP": "true"
        }
      }
    }
  ]
}

このポリシーは、CreateCustomDomain 操作と UpdateCustomDomain 操作で、ユーザーが protocol パラメーターを HTTP または HTTP,HTTPS に設定することを禁止します。 このパラメーターは HTTPS にのみ設定できます。

カスタムドメイン名で HTTP を有効にしようとすると、403 AccessDenied エラーが報告されます。 次のコードは例を示しています。

{
  "statusCode":403,
  "Code":"AccessDenied",
  "Message":"the caller is not authorized to perform 'fc:CreateCustomDomain' on resource 'acs:fc:xxx:xxx:custom-domains/xxx' with condition '[fc:EnableCustomDomainHTTP=true]'"
}