Alibaba Cloud menyediakan Resource Access Management (RAM) untuk mengelola izin Function Compute. Dengan RAM, Anda tidak perlu berbagi pasangan AccessKey dari akun Alibaba Cloud dengan pengguna lain. Sebagai gantinya, Anda dapat memberikan mereka 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.
Tipe
Dalam RAM, kebijakan adalah serangkaian izin yang dijelaskan berdasarkan sintaksis dan struktur kebijakan. Kebijakan secara akurat menggambarkan set sumber daya yang diizinkan, set tindakan, dan kondisi otorisasi. Kebijakan untuk Function Compute mencakup jenis-jenis berikut:
Kebijakan Sistem: kebijakan yang dibuat oleh Alibaba Cloud. Anda dapat menggunakan kebijakan ini, tetapi tidak dapat memodifikasinya. Alibaba Cloud memelihara pembaruan versi kebijakan tersebut.
Kebijakan Kustom: kebijakan yang dapat Anda buat, perbarui, dan hapus. Anda memelihara pembaruan versi kebijakan tersebut.
Kebijakan Sistem
Sebelum masuk ke Function Compute console sebagai pengguna RAM untuk pertama kalinya, Anda harus melampirkan kebijakan sistem untuk mengakses Function Compute dan layanan Alibaba Cloud lainnya ke pengguna RAM menggunakan akun Alibaba Cloud Anda. Anda hanya dapat mengakses layanan Alibaba Cloud, termasuk Function Compute, sebagai pengguna RAM setelah kebijakan sistem dilampirkan.
Kebijakan sistem mencakup jenis-jenis berikut:
Kebijakan Sistem untuk Function Compute
Kebijakan
Deskripsi
AliyunFCReadOnlyAccess
Izin baca-saja pada semua sumber daya Function Compute.
AliyunFCInvocationAccess
Izin untuk memanggil semua fungsi.
AliyunFCFullAccess
Izin untuk mengelola semua sumber daya Function Compute.
CatatanIzin untuk mengelola semua sumber daya Function Compute dalam kebijakan AliyunFCFullAccess mencakup izin untuk memanggil semua fungsi dalam kebijakan AliyunFCInvocationAccess dan izin baca-saja pada semua sumber daya Function Compute dalam kebijakan AliyunFCReadOnlyAccess. Setelah melampirkan kebijakan AliyunFCFullAccess ke pengguna RAM, Anda tidak perlu melampirkan kebijakan AliyunFCInvocationAccess atau AliyunFCReadOnlyAccess.
Kebijakan Sistem untuk Layanan Alibaba Cloud Lainnya
Layanan Alibaba Cloud
Kebijakan Sistem
Log Service
AliyunLogReadOnlyAccess: izin baca-saja pada semua sumber daya Log Service.
AliyunLogFullAccess: izin untuk mengelola semua sumber daya Log Service.
CatatanUntuk mengakses Log Service 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 semua sumber daya OSS.
AliyunOSSFullAccess: izin untuk mengelola semua sumber daya OSS.
CloudMonitor
AliyunCloudMonitorReadOnlyAccess: izin baca-saja pada semua sumber daya CloudMonitor.
SSL Certificates Service
AliyunYundunCertReadOnlyAccess: izin baca-saja pada semua sumber daya SSL Certificates Service.
Virtual Private Cloud
AliyunVPCReadOnlyAccess: izin baca-saja pada semua sumber daya VPC.
Elastic Compute Service (ECS)
AliyunECSReadOnlyAccess: izin baca-saja pada semua sumber daya ECS.
Resource Access Management (RAM)
AliyunRAMReadOnlyAccess: izin baca-saja pada semua sumber daya RAM, termasuk izin untuk melihat pengguna, grup, dan informasi otorisasi.
AliyunRAMFullAccess: izin untuk mengelola semua sumber daya RAM, termasuk izin untuk mengelola pengguna dan memberikan izin.
CatatanJika 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 harus melampirkan kebijakan AliyunRAMFullAccess ke pengguna RAM.
Application Real-Time Monitoring Service
AliyunARMSReadOnlyAccess: izin baca-saja pada sumber daya ARMS.
AliyunARMSFullAccess: izin untuk mengelola sumber daya ARMS.
CatatanUntuk 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 semua sumber daya Simple Message Queue (formerly MNS).
AliyunMNSFullAccess: izin untuk mengelola semua sumber daya Simple Message Queue (formerly MNS).
CatatanUntuk mengakses Simple Message Queue (formerly MNS) sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunMNSReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.
EventBridge
AliyunEventBridgeReadOnlyAccess: izin baca-saja pada semua sumber daya EventBridge.
AliyunEventBridgeFullAccess: izin untuk mengelola semua sumber daya EventBridge.
CatatanUntuk mengakses EventBridge sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunEventBridgeReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.
Message Queue for Apache RocketMQ
AliyunMQReadOnlyAccess: izin baca-saja pada semua sumber daya Message Queue for Apache RocketMQ.
AliyunMQFullAccess: izin untuk mengelola semua sumber daya Message Queue for Apache RocketMQ.
CatatanUntuk mengakses Message Queue for Apache 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 semua sumber daya Container Registry.
AliyunContainerRegistryFullAccess: izin untuk mengelola semua sumber daya Container Registry.
CatatanUntuk mengakses Container Registry sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunContainerRegistryReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.
File Storage NAS
AliyunNASReadOnlyAccess: izin baca-saja pada semua sumber daya NAS.
AliyunNASFullAccess: izin untuk mengelola semua sumber daya NAS.
CatatanUntuk 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 semua sumber daya ApsaraDB RDS.
AliyunRDSFullAccess: izin untuk mengelola semua sumber daya ApsaraDB RDS.
CatatanUntuk 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.
CatatanUntuk mengakses ApsaraDB RDS sebagai pengguna RAM, Anda hanya perlu melampirkan kebijakan AliyunRDCReadOnlyAccess ke pengguna RAM berdasarkan prinsip hak istimewa minimal.
Jika Anda tidak dapat memperbarui pemicu acara OSS sebagai pengguna RAM setelah memberikan izin terkait pemicu, misalnya melampirkan kebijakan AliyunOSSFullAccess ke pengguna RAM menggunakan akun Alibaba Cloud, lampirkan 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 terperinci kepada pengguna RAM. Untuk informasi lebih lanjut tentang elemen-elemen kebijakan, lihat Elemen Dasar Kebijakan.
Sumber Daya | Tindakan | Deskripsi |
acs:fc:<region>:<account-id>:services/<serviceName> | fc:GetService | Layanan yang ditentukan. |
fc:UpdateService | ||
fc:DeleteService | ||
acs:fc:<region>:<account-id>:services/* | fc:CreateService | Semua layanan. |
fc:ListServices | ||
acs:fc:<region>:<account-id>:services/<serviceName>.<qualifier> | fc:GetService | Layanan versi tertentu. |
acs:fc:<region>:<account-id>:services/<serviceName>/functions/<functionName> | fc:GetFunction | Fungsi tertentu dalam layanan tertentu. |
fc:UpdateFunction | ||
fc:DeleteFunction | ||
fc:InvokeFunction | ||
acs:fc:<region>:<account-id>:services/<serviceName>/functions/* | fc:CreateFunction | Semua fungsi dalam layanan tertentu. |
fc:ListFunctions | ||
acs:fc:<region>:<account-id>:services/<serviceName>.*/functions/<functionName> | fc:GetFunction | Semua fungsi dalam semua versi layanan tertentu. |
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 | Pemicu tertentu dari fungsi tertentu dalam layanan tertentu. |
fc:UpdateTrigger | ||
fc:DeleteTrigger | ||
acs:fc:<region>:<account-id>:services/<serviceName>/functions/<functionName>/triggers/* | fc:CreateTrigger | Semua pemicu dari fungsi tertentu dalam layanan tertentu. |
fc:ListTriggers | ||
acs:fc:<region>:<account-id>:services/<serviceName>/versions | fc:PublishServiceVersion | Semua versi layanan. |
fc:ListServiceVersions | ||
acs:fc:<region>:<account-id>:services/<serviceName>/versions/<versionId> | fc:DeleteServiceVersion | Versi layanan tertentu. |
acs:fc:<region>:<account-id>:services/<serviceName>/aliases/* | fc:CreateAlias | Semua alias layanan. |
fc:ListAliases | ||
acs:fc:<region>:<account-id>:services/<serviceName>/aliases/<aliasName> | fc:GetAlias | Alias layanan tertentu. |
fc:UpdateAlias | ||
fc:DeleteAlias | ||
acs:fc:<region>:<account-id>:custom-domains/* | fc:CreateCustomDomain | Semua nama domain kustom. |
fc:ListCustomDomains | ||
acs:fc:<region>:<account-id>:custom-domains/<domainName> | fc:GetCustomDomain | Nama domain kustom tertentu. |
fc:UpdateCustomDomain | ||
fc:DeleteCustomDomain | ||
acs:fc:<region>:<account-id>:tag | fc:TagResource | Tag tunggal. |
fc:GetResourceTags | ||
fc:UnTagResource | ||
acs:fc:<region>:<account-id>:tags/* | fc:ListTaggedResources | Semua tag. |
acs:fc:<region>:<account-id>:account-settings/* | fc:GetAccountSettings | Pengaturan akun Anda. |
acs:fc:<region>:<account-id>:layerarn/<arn> | fc:GetLayerVersionByArn | Semua lapisan. |
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 | Semua versi lapisan. |
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 | Konfigurasi on-demand. |
acs:fc:<region>:<account-id>:provision-configs/* | fc:ListProvisionConfigs | Konfigurasi provisioned. |
acs:fc:<region>:<account-id>:services/<serviceName>/binding | fc:DeleteVpcBinding | Konfigurasi 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 | Konfigurasi pemanggilan asinkron. |
acs:fc:<region>:<account-id>:services/<serviceName>/functions/<functionName>/code | fc:GetFunctionCode | Semua kode fungsi. |
acs:fc:<region>:<account-id>:services/<serviceName>/functions/<functionName>/stateful-async-invocations/* | fc:ListStatefulAsyncInvocations | Tugas asinkron. |
acs:fc:<region>:<account-id>:services/<serviceName>/functions/<functionName>/stateful-async-invocations/<invocationId> | fc:GetStatefulAsyncInvocation | |
fc:StopStatefulAsyncInvocation |
Anda dapat menggunakan tindakan dan sumber daya di atas untuk mendefinisikan kebijakan kustom berikut yang digunakan untuk memberikan izin memanggil fungsi demo dalam layanan test di wilayah China (Hangzhou).
{
"Version": "1",
"Statement": [
{
"Action": [
"fc:InvokeFunction"
],
"Resource": "acs:fc:cn-hangzhou:*:services/test/functions/demo",
"Effect": "Allow"
}
]
}Contoh Kebijakan
Kebijakan Kustom dengan Izin untuk Membuat dan Menanyakan Layanan serta Membuat dan Memanggil Fungsi di 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":"*"
}
]
}Kebijakan Kustom yang Digunakan untuk Memberikan Izin Mengakses Log
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:ListProject",
"log:ListLogStore"
],
"Resource": "acs:log:*:*:project/*"
}
]
}Kebijakan Kustom yang Digunakan untuk Memberikan Izin Mengakses Pemicu Acara OSS
{
"Statement": [
{
"Action": [
"oss:ListBucket",
"oss:GetBucketEventNotification",
"oss:PutBucketEventNotification",
"oss:DeleteBucketEventNotification"
],
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "1"
}Kebijakan Kustom di mana Layanan yang Dapat Mengakses Internet Tidak Diizinkan untuk Dibuat
{
"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"
}
}
}
]
}Kebijakan Kustom di mana Layanan yang Tidak Dapat Mengakses Log Service Tidak Diizinkan untuk Dibuat
{
"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"
}
}
}
]
}Kebijakan Kustom di mana Pemicu yang Dapat Diakses melalui Internet Tidak Diizinkan untuk Dibuat
{
"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"
}
}
}
]
}