Function Compute, izinleri yönetmek için Resource Access Management (RAM) hizmetini kullanır. RAM sayesinde AccessKey çiftlerinizi diğer kullanıcılarla paylaşmanıza gerek kalmaz. Bunun yerine, kullanıcılara yalnızca gereken en az düzeyde izin verebilirsiniz. Bir AccessKey çifti; bir AccessKey ID ve bir AccessKey secret içerir. Bu konu, Function Compute için sistem ilkeleri ve özel ilkeler dahil olmak üzere ilkeleri açıklar. Ayrıca örnek özel ilkeler sunar.
İlke türleri
RAM'de ilke, İlke yapısı ve sözdizimi temel alınarak tanımlanan bir izin kümesidir. Bir ilke, yetkili kaynak kümesini, işlem kümesini ve yetkilendirme koşullarını kesin olarak belirler. Function Compute ilkeleri aşağıdaki türleri içerir:
Sistem ilkeleri: Sistem ilkeleri Alibaba Cloud tarafından oluşturulur ve güncellenir. Sistem ilkelerini kullanabilirsiniz ancak bunları değiştiremezsiniz.
Özel ilkeler: Özel ilkeleri oluşturabilir, güncelleyebilir ve silebilirsiniz. Özel ilkelerin sürümlerini kendiniz yönetmeniz gerekir.
Sistem ilkeleri
Bir RAM kullanıcısı olarak Function Compute konsoluna ilk kez giriş yaptığınızda, Alibaba Cloud hesabınızı kullanarak Function Compute ve diğer Alibaba Cloud hizmetlerinin sistem ilkelerini ilgili RAM kullanıcısına eklemeniz gerekir. RAM kullanıcısı olarak yalnızca sistem ilkeleri eklendikten sonra Function Compute dahil olmak üzere Alibaba Cloud hizmetlerine erişebilirsiniz.
Aşağıdaki öğeler farklı türlerdeki sistem ilkelerini listeler:
-
Function Compute sistem ilkeleri
İlke adı
Açıklama
AliyunFCReadOnlyAccess
Tüm Function Compute kaynaklarında salt okunur izinleri sağlar.
AliyunFCInvocationAccess
İşlevleri çağırma izinlerini sağlar.
AliyunFCFullAccess
Tüm Function Compute kaynaklarını yönetme izinlerini sağlar.NotAliyunFCFullAccess ilkesi, AliyunFCInvocationAccess ve AliyunFCReadOnlyAccess ilkelerinin izinlerini içerir. AliyunFCFullAccess ilkesini bir RAM kullanıcısına ekledikten sonra, söz konusu kullanıcıya AliyunFCInvocationAccess veya AliyunFCReadOnlyAccess ilkesini ayrıca eklemenize gerek yoktur.
-
Diğer Alibaba Cloud hizmetleri için sistem ilkeleri
Alibaba Cloud hizmeti
Sistem ilkesi
Simple Log Service
AliyunLogReadOnlyAccess: Simple Log Service kaynaklarında salt okunur izinleri sağlar.
AliyunLogFullAccess: Simple Log Service kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının Simple Log Service hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunLogReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.
Object Storage Service (OSS)
AliyunOSSReadOnlyAccess: OSS kaynaklarında salt okunur izinleri sağlar.
AliyunOSSFullAccess: OSS kaynaklarını yönetme izinlerini sağlar.
CloudMonitor
AliyunCloudMonitorReadOnlyAccess: CloudMonitor kaynaklarında salt okunur izinleri sağlar.
Certificate Management Service
AliyunYundunCertReadOnlyAccess: Certificate Management Service kaynaklarında salt okunur izinleri sağlar.
Virtual Private Cloud (VPC)
AliyunVPCReadOnlyAccess: VPC kaynaklarında salt okunur izinleri sağlar.
Elastic Compute Service (ECS)
AliyunECSReadOnlyAccess: ECS kaynaklarında salt okunur izinleri sağlar.
RAM
AliyunRAMReadOnlyAccess: Kullanıcıları, grupları ve yetkilendirme bilgilerini görüntüleme izinleri dahil olmak üzere RAM kaynaklarında salt okunur izinleri sağlar.
AliyunRAMFullAccess: Kullanıcıları yönetme ve izin atama izinleri dahil olmak üzere RAM kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısına yalnızca AliyunRAMReadOnlyAccess ilkesini eklerseniz, bu kullanıcıyla konsolda yalnızca rol listesini görüntüleyebilirsiniz. RAM kullanıcısı olarak başka işlemler yapmanız gerekiyorsa, ilgili kullanıcıya AliyunRAMFullAccess ilkesini eklemeniz gerekir.
Application Real-Time Monitoring Service (ARMS)
AliyunARMSReadOnlyAccess: ARMS kaynaklarında salt okunur izinleri sağlar.
AliyunARMSFullAccess: ARMS kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının ARMS hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunARMSReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.
Simple Message Queue (formerly MNS)
AliyunMNSReadOnlyAccess: Simple Message Queue (formerly MNS) kaynaklarında salt okunur izinleri sağlar.
AliyunMNSFullAccess: Simple Message Queue (formerly MNS) kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının Simple Message Queue (formerly MNS) hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunMNSReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.Simple Message Queue (formerly MNS)
EventBridge
AliyunEventBridgeReadOnlyAccess: EventBridge kaynaklarında salt okunur izinleri sağlar.
AliyunEventBridgeFullAccess: EventBridge kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının EventBridge hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunEventBridgeReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.
ApsaraMQ for RocketMQ
AliyunMQReadOnlyAccess: ApsaraMQ for RocketMQ kaynaklarında salt okunur izinleri sağlar.
AliyunMQFullAccess: ApsaraMQ for RocketMQ kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının ApsaraMQ for RocketMQ hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunMQReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.
Container Registry
AliyunContainerRegistryReadOnlyAccess: Container Registry kaynaklarında salt okunur izinleri sağlar.
AliyunContainerRegistryFullAccess: Container Registry kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının Container Registry hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunContainerRegistryReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.
File Storage NAS (NAS)
AliyunNASReadOnlyAccess: NAS kaynaklarında salt okunur izinleri sağlar.
AliyunNASFullAccess: NAS kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının NAS hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunNASReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.
ApsaraDB RDS
AliyunRDSReadOnlyAccess: ApsaraDB RDS kaynaklarında salt okunur izinleri sağlar.
AliyunRDSFullAccess: ApsaraDB RDS kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının ApsaraDB RDS hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunRDSReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.
Alibaba Cloud DevOps
AliyunRDCReadOnlyAccess: Apsara DevOps RDC kaynaklarında salt okunur izinleri sağlar.
AliyunRDCFullAccess: Apsara DevOps RDC kaynaklarını yönetme izinlerini sağlar.
NotBir RAM kullanıcısının ApsaraDB RDS hizmetine erişmesi için, en az ayrıcalık ilkesi gereği yalnızca AliyunRDCReadOnlyAccess ilkesini ilgili RAM kullanıcısına eklemeniz yeterlidir.
Bir tetikleyiciyle ilgili ilkeyi (örneğin AliyunOSSFullAccess) bir RAM kullanıcısına Alibaba Cloud hesabınızla ekledikten sonra, RAM kullanıcısı olarak tetikleyicileri güncelleyemiyorsanız, Alibaba Cloud hesabınızı kullanarak aşağıdaki özel ilkeyi ilgili RAM kullanıcısına eklemeniz gerekir. Özel ilke eklendiğinde, RAM kullanıcısı olarak OSS olay tetikleyicilerini güncelleyebilirsiniz.
{
"Statement": [
{
"Action": [
"ram:PassRole"
],
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "1"
}
Özel ilkeler
Function Compute, sistem ilkelerine ek olarak RAM kullanıcılarına ayrıntılı izinler vermenizi sağlayan özel ilkeleri destekler. İlkeler hakkında daha fazla bilgi için bkz. İzin ilkesi öğeleri.
İşlem | Kaynak | Açıklama |
fc:GetAsyncTask | acs:fc:{region}:{uid}:functions/{functionName}/async-tasks/{taskId} | Eşzamansız görevler |
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} | Eşzamansız çağırma yapılandırmaları |
fc:ListConcurrencyConfigs | acs:fc:{region}:{uid}:concurrency-configs/* acs:fc:{region}:{uid}:functions/{functionName} | Eşzamanlılık yapılandırmaları |
fc:ListCustomDomains | acs:fc:{region}:{uid}:custom-domains/* | Tüm özel alan adları |
fc:GetCustomDomain | acs:fc:{region}:{uid}:custom-domains/{domainName} | Belirtilen özel alan adları |
fc:DeleteCustomDomain | ||
fc:UpdateCustomDomain | ||
fc:CreateCustomDomain | ||
fc:ListFunctions | acs:fc:{region}:{uid}:functions/* | Tüm işlev kaynakları |
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/* | Tüm takma adlar |
fc:CreateAlias | acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName} | Belirtilen takma adlar |
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/* | Örnek bilgileri |
fc:ListTriggers | acs:fc:{region}:{uid}:functions/{functionName}/triggers/* | Belirtilen işlev altındaki tüm tetikleyici kaynakları |
fc:CreateTrigger | acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName} | Belirtilen işlev altındaki belirli tetikleyici kaynakları |
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 | Tüm sürümler |
fc:ListFunctionVersions | acs:fc:{region}:{uid}:functions/{functionName}/versions/* | |
fc:DeleteFunctionVersion | acs:fc:{region}:{uid}:functions/{functionName}/versions/{versionId} | Belirtilen sürümler |
fc:ListVpcBindings | acs:fc:{region}:{uid}:functions/{functionName}/vpc-bindings/* | VPC yapılandırmaları |
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} | Tüm işlev kodları |
fc:GetFunctionAsyncInvokeConfig | acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier} | Tüm işlev kaynakları |
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} | Tüm katmanlar |
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} | Sağlanan örnek yapılandırmaları |
Önceki özel ilkeyi kullanarak China (Hangzhou) bölgesindeki demo işlevini çağırma izinlerini yapılandırabilirsiniz. Aşağıdaki kod parçası ayrıntıları gösterir:
{
"Version": "1",
"Statement": [
{
"Action": [
"fc:InvokeFunction"
],
"Resource": "acs:fc:cn-hangzhou:*:functions/demo",
"Effect": "Allow"
}
]
}
Örnek ilkeler
Hizmet oluşturma ve sorgulama ile işlev oluşturma ve çağırma için özel ilke
{
"Version": "1",
"Statement": [{
"Action": [
"fc:CreateFunction",
"fc:GetFunction",
"fc:InvokeFunction"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ram:PassRole"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
Günlüklere erişim için özel ilke
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:ListProject",
"log:ListLogStore"
],
"Resource": "acs:log:*:*:project/*"
}
]
}
OSS olay tetikleyicilerine erişim için özel ilke
{
"Statement": [
{
"Action": [
"oss:ListBucket",
"oss:GetBucketEventNotification",
"oss:PutBucketEventNotification",
"oss:DeleteBucketEventNotification"
],
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "1"
}
İnternete erişebilen hizmetlerin oluşturulmasını yasaklama için özel ilke
{
"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 hizmetine erişmesine izin verilmeyen hizmetlerin oluşturulmasını yasaklama için özel ilke
{
"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"
}
}
}
]
}
İnternet üzerinden erişilebilen tetikleyicilerin oluşturulmasını yasaklama için özel ilke
{
"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"
}
}
}
]
}
Bu ilke, kullanıcıların CreateTrigger ve UpdateTrigger işlemlerinde disableURLInternet parametresini false olarak ayarlamasını engeller. Bu parametrenin değeri yalnızca varsayılan genel alan adlarının desteklenmediğini belirten true olarak ayarlanabilir. Bu kısıtlama yalnızca HTTP tetikleyicileri için geçerlidir. Daha fazla bilgi için bkz. HTTPTriggerConfig.
Bu durumda, disableURLInternet=false ayarladığınızda 403 AccessDenied hatası alırsınız. Aşağıdaki kod bir örnek sunar:
{
"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]'"
}
Anonim modda erişilebilen tetikleyicilerin oluşturulmasını yasaklama için özel ilke
{
"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"
}
}
}
]
}
Bu ilke, kullanıcıların CreateTrigger ve UpdateTrigger işlemlerinde authType parametresini anonymous olarak ayarlamasını engeller. Bu parametrenin değeri yalnızca kimlik doğrulaması gerektiğini belirten function olarak ayarlanabilir. Bu kısıtlama yalnızca HTTP tetikleyicileri için geçerlidir. Daha fazla bilgi için bkz. HTTPTriggerConfig.
Bu durumda, authType=anonymous ayarladığınızda 403 AccessDenied hatası alırsınız. Aşağıdaki kod bir örnek sunar:
{
"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 isteklerine izin veren özel alan adlarının oluşturulmasını yasaklama için özel ilke
{
"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"
}
}
}
]
}
Bu ilke, kullanıcıların CreateCustomDomain ve UpdateCustomDomain işlemlerinde protocol parametresini HTTP veya HTTP,HTTPS olarak ayarlamasını engeller. Bu parametreyi yalnızca HTTPS olarak ayarlayabilirsiniz.
Bir özel alan adı için HTTP protokolünü etkinleştirmeye çalışırsanız 403 AccessDenied hatası alırsınız. Aşağıdaki kod bir örnek sunar:
{
"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]'"
}