全部产品
Search
文档中心

Function Compute:Kebijakan dan Contoh Kebijakan

更新时间:Jul 06, 2025

Function Compute menggunakan Resource Access Management (RAM) untuk mengelola izin. Dengan RAM, Anda tidak perlu berbagi pasangan AccessKey dengan pengguna lain. Sebagai gantinya, Anda dapat memberikan pengguna hanya izin minimal yang diperlukan. Pasangan AccessKey mencakup ID AccessKey dan Rahasia AccessKey. Topik ini menjelaskan kebijakan untuk Function Compute, termasuk kebijakan sistem dan kebijakan kustom, serta menyediakan contoh kebijakan kustom.

Jenis-jenis Kebijakan

Dalam RAM, kebijakan adalah serangkaian izin yang didefinisikan berdasarkan Struktur dan sintaksis Kebijakan. Kebijakan secara akurat mendefinisikan set sumber daya yang diotorisasi, set tindakan, dan kondisi otorisasi. Kebijakan untuk Function Compute mencakup jenis-jenis berikut:

  • Kebijakan Sistem: Kebijakan sistem dibuat dan diperbarui oleh Alibaba Cloud. Anda dapat menggunakan kebijakan sistem tetapi tidak dapat memodifikasinya.

  • Kebijakan Kustom: Anda dapat membuat, memperbarui, dan menghapus kebijakan kustom. Anda perlu memelihara versi dari kebijakan kustom.

Kebijakan Sistem

Saat masuk ke Konsol Function Compute sebagai pengguna RAM untuk pertama kalinya, Anda harus menggunakan akun Alibaba Cloud untuk melampirkan kebijakan sistem Function Compute dan layanan Alibaba Cloud lainnya kepada pengguna RAM. Anda hanya dapat mengakses layanan Alibaba Cloud, termasuk Function Compute, sebagai pengguna RAM setelah kebijakan sistem dilampirkan.

Berikut adalah daftar kebijakan sistem berdasarkan jenis:

  • Kebijakan sistem untuk Function Compute

    Nama Kebijakan

    Deskripsi

    AliyunFCReadOnlyAccess

    Izin baca-saja pada semua sumber daya Function Compute.

    AliyunFCInvocationAccess

    Izin untuk memanggil fungsi.

    AliyunFCFullAccess

    Izin untuk mengelola semua sumber daya Function Compute.

    Catatan

    Kebijakan AliyunFCFullAccess mencakup izin dari kebijakan AliyunFCInvocationAccess dan AliyunFCReadOnlyAccess. Setelah melampirkan kebijakan AliyunFCFullAccess ke pengguna RAM, Anda tidak perlu melampirkan kebijakan AliyunFCInvocationAccess atau AliyunFCReadOnlyAccess ke pengguna RAM.

  • Kebijakan sistem untuk layanan Alibaba Cloud lainnya

    Layanan Alibaba Cloud

    Kebijakan Sistem

    Layanan Log Sederhana

    • AliyunLogReadOnlyAccess: izin baca-saja pada sumber daya Layanan Log Sederhana.

    • AliyunLogFullAccess: izin untuk mengelola sumber daya Layanan Log Sederhana.

    Catatan

    Untuk mengakses Layanan Log Sederhana sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunLogReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.

    Object Storage Service (OSS)

    • AliyunOSSReadOnlyAccess: izin baca-saja pada sumber daya OSS.

    • AliyunOSSFullAccess: izin untuk mengelola sumber daya OSS.

    CloudMonitor

    AliyunCloudMonitorReadOnlyAccess: izin baca-saja pada sumber daya CloudMonitor.

    Certificate Management Service

    AliyunYundunCertReadOnlyAccess: izin baca-saja pada sumber daya Certificate Management Service.

    Virtual Private Cloud (VPC)

    AliyunVPCReadOnlyAccess: izin baca-saja pada sumber daya VPC.

    Elastic Compute Service (ECS)

    AliyunECSReadOnlyAccess: izin baca-saja pada sumber daya ECS.

    RAM

    • AliyunRAMReadOnlyAccess: izin baca-saja pada sumber daya RAM, termasuk izin untuk melihat pengguna, grup, dan informasi otorisasi.

    • AliyunRAMFullAccess: izin untuk mengelola sumber daya RAM, termasuk izin untuk mengelola pengguna dan memberikan izin.

    Catatan

    Jika Anda hanya melampirkan kebijakan AliyunRAMReadOnlyAccess ke pengguna RAM, Anda hanya dapat memperoleh daftar peran di konsol sebagai pengguna RAM. Jika Anda perlu melakukan operasi lain sebagai pengguna RAM, Anda perlu melampirkan kebijakan AliyunRAMFullAccess ke pengguna RAM.

    Application Real-Time Monitoring Service (ARMS)

    • AliyunARMSReadOnlyAccess: izin baca-saja pada sumber daya ARMS.

    • AliyunARMSFullAccess: izin untuk mengelola sumber daya ARMS.

    Catatan

    Untuk mengakses ARMS sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunARMSReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.

    Simple Message Queue (formerly MNS)

    • AliyunMNSReadOnlyAccess: izin baca-saja pada sumber daya Simple Message Queue (formerly MNS).

    • AliyunMNSFullAccess: izin untuk mengelola sumber daya Simple Message Queue (formerly MNS).

    Catatan

    Untuk mengakses Simple Message Queue (formerly MNS) sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunMNSReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.Simple Message Queue (formerly MNS)

    EventBridge

    • AliyunEventBridgeReadOnlyAccess: izin baca-saja pada sumber daya EventBridge.

    • AliyunEventBridgeFullAccess: izin untuk mengelola sumber daya EventBridge.

    Catatan

    Untuk mengakses EventBridge sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunEventBridgeReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.

    ApsaraMQ for RocketMQ

    • AliyunMQReadOnlyAccess: izin baca-saja pada sumber daya ApsaraMQ for RocketMQ.

    • AliyunMQFullAccess: izin untuk mengelola sumber daya ApsaraMQ for RocketMQ.

    Catatan

    Untuk mengakses ApsaraMQ for RocketMQ sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunMQReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.

    Container Registry

    • AliyunContainerRegistryReadOnlyAccess: izin baca-saja pada sumber daya Container Registry.

    • AliyunContainerRegistryFullAccess: izin untuk mengelola sumber daya Container Registry.

    Catatan

    Untuk mengakses Container Registry sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunContainerRegistryReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.

    File Storage NAS (NAS)

    • AliyunNASReadOnlyAccess: izin baca-saja pada sumber daya NAS.

    • AliyunNASFullAccess: izin untuk mengelola sumber daya NAS.

    Catatan

    Untuk mengakses NAS sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunNASReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.

    ApsaraDB RDS

    • AliyunRDSReadOnlyAccess: izin baca-saja pada sumber daya ApsaraDB RDS.

    • AliyunRDSFullAccess: izin untuk mengelola sumber daya ApsaraDB RDS.

    Catatan

    Untuk mengakses ApsaraDB RDS sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunRDSReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.

    Alibaba Cloud DevOps

    • AliyunRDCReadOnlyAccess: izin baca-saja pada sumber daya Apsara Devops RDC.

    • AliyunRDCFullAccess: izin untuk mengelola sumber daya Apsara Devops RDC.

    Catatan

    Untuk mengakses ApsaraDB RDS sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunRDCReadOnlyAccesss ke pengguna RAM berdasarkan prinsip hak istimewa minimal.

Penting

Jika Anda tidak dapat memperbarui pemicu sebagai pengguna RAM setelah melampirkan kebijakan terkait pemicu, misalnya, AliyunOSSFullAccess, ke pengguna RAM menggunakan akun Alibaba Cloud, Anda perlu melampirkan kebijakan kustom berikut ke pengguna RAM menggunakan akun Alibaba Cloud. Setelah kebijakan kustom dilampirkan, Anda dapat memperbarui pemicu acara OSS sebagai pengguna RAM.

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

Kebijakan Kustom

Selain kebijakan sistem, Function Compute mendukung kebijakan kustom yang memungkinkan Anda memberikan izin granular halus kepada pengguna RAM. Untuk informasi lebih lanjut tentang kebijakan, lihat Elemen dasar kebijakan.

Tindakan

Sumber Daya

Deskripsi

fc:GetAsyncTask

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

Tugas asinkron

fc:StopAsyncTask

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}

Konfigurasi pemanggilan asinkron

fc:ListConcurrencyConfigs

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

Konfigurasi konkurensi

fc:ListCustomDomains

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

Semua nama domain kustom

fc:GetCustomDomain

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

Nama domain kustom tertentu

fc:DeleteCustomDomain

fc:UpdateCustomDomain

fc:CreateCustomDomain

fc:ListFunctions

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

Semua sumber daya fungsi

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/*

Semua alias

fc:CreateAlias

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

Alias tertentu

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/*

Informasi instans

fc:ListTriggers

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

Semua sumber daya pemicu di bawah fungsi yang ditentukan

fc:CreateTrigger

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

Sumber daya pemicu tertentu di bawah fungsi yang ditentukan

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

Semua versi

fc:ListFunctionVersions

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

fc:DeleteFunctionVersion

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

Versi tertentu

fc:ListVpcBindings

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

Konfigurasi 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}

Semua kode fungsi

fc:GetFunctionAsyncInvokeConfig

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

Semua sumber daya fungsi

fc:DeleteProvisionConfig

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}

Semua lapisan

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}

Konfigurasi instans terprovisi

Anda dapat menggunakan kebijakan kustom di atas untuk mengonfigurasi izin untuk memanggil fungsi demo di wilayah China (Hangzhou). Potongan kode berikut menunjukkan detailnya:

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

Contoh Kebijakan

Kebijakan kustom untuk membuat dan menanyakan layanan serta membuat dan memanggil fungsi

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

Kebijakan kustom untuk mengakses log

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

Kebijakan kustom untuk mengakses pemicu acara OSS

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

Kebijakan kustom untuk melarang pembuatan layanan yang dapat mengakses Internet

{
  "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"
        }
      }
    }
  ]
}

Kebijakan kustom untuk melarang pembuatan layanan yang tidak diizinkan mengakses Layanan Log Sederhana

{
  "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"
        }
      }
    }
  ]
}

Kebijakan kustom untuk melarang pembuatan pemicu yang dapat diakses melalui Internet

{
  "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"
        }
      }
    }
  ]
}

Kebijakan ini melarang pengguna menyetel parameter disableURLInternet ke false dalam operasi CreateTrigger dan UpdateTrigger. Nilai parameter ini hanya dapat disetel ke true, yang menunjukkan bahwa nama domain publik default tidak didukung. Batasan ini hanya berlaku untuk pemicu HTTP. Untuk informasi lebih lanjut, lihat HTTPTriggerConfig.

Dalam hal ini, kesalahan 403 AccessDenied dilaporkan jika Anda menyetel disableURLInternet=false. Kode berikut memberikan contohnya:

{
  "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]'"
}

Kebijakan kustom untuk melarang pembuatan pemicu yang dapat diakses dalam mode anonim

{
  "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"
        }
      }
    }
  ]
}

Kebijakan ini melarang pengguna menyetel parameter authType ke anonymous dalam operasi CreateTrigger dan UpdateTrigger. Nilai parameter ini hanya dapat disetel ke function, yang menentukan bahwa autentikasi diperlukan. Batasan ini hanya berlaku untuk pemicu HTTP. Untuk informasi lebih lanjut, lihat HTTPTriggerConfig.

Dalam hal ini, kesalahan 403 AccessDenied dilaporkan jika Anda menyetel authType=anonymous. Kode berikut memberikan contohnya:

{
  "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]'"
}

Kebijakan kustom untuk melarang pembuatan nama domain kustom yang mengizinkan permintaan 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"
        }
      }
    }
  ]
}

Kebijakan ini melarang pengguna menyetel parameter protocol ke HTTP atau HTTP,HTTPS dalam operasi CreateCustomDomain dan UpdateCustomDomain. Anda dapat menyetel parameter ini hanya ke HTTPS.

Kesalahan 403 AccessDenied dilaporkan jika Anda mencoba mengaktifkan HTTP untuk nama domain kustom. Kode berikut memberikan contohnya:

{
  "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]'"
}