日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

免密拉取ACR鏡像

對于阿里云容器鏡像服務ACR的鏡像,ECI支持免密拉取,以提升效率和安全性。本文介紹如何免密拉取ACR鏡像。

背景信息

阿里云容器鏡像服務ACR分為個人版和企業(yè)版。其中,企業(yè)版是企業(yè)級云原生應用制品管理平臺,提供容器鏡像、Helm Chart以及符合OCI規(guī)范制品的生命周期管理,適用于業(yè)務大規(guī)模部署場景,幫助企業(yè)降低交付復雜度。更多信息,請參見容器鏡像服務ACR簡介

創(chuàng)建ECI實例或鏡像緩存時,如果要拉取的鏡像屬于ACR鏡像,可以配置免密來簡化流程,提升效率,同時避免密碼泄露的風險,加強安全性。

說明

非ACR鏡像(例如Docker鏡像)不支持免密。

前提條件

配置ECI實例等資源免密拉取ACR鏡像前,請確保您已經完成以下操作:

  1. 已創(chuàng)建ACR實例,并完成鏡像倉庫、鏡像等相關配置。

  2. 如果使用ACR企業(yè)版實例,需要配置免密訪問。

    新創(chuàng)建的ACR企業(yè)版實例默認處于非連接狀態(tài),需要配置相應的ACL策略后,才可以通過公網或者專有網絡訪問該實例。

    • 公網訪問:開啟公網訪問入口后,可以直接通過公網域名地址來訪問ACR企業(yè)版實例的鏡像(可跨域)。具體操作,請參見配置公網的訪問控制

    • 專有網絡訪問:使用專有網絡VPC訪問ACR企業(yè)版實例,需要開啟相關授權。具體操作,請參見配置專有網絡的訪問控制

配置說明

對于ACR鏡像,根據(jù)ACR實例是否與待創(chuàng)建的ECI實例等資源屬于同一阿里云賬號,以及ACR實例的類型,免密拉取鏡像的支持情況如下:

賬號情況

ACR類型

免密支持情況

同賬號

  • 個人版

  • 企業(yè)版(默認域名)

默認自動免密,支持配置RAM角色來限制免密范圍。

同賬號

企業(yè)版(自定義域名)

無法自動免密,需要指定ACR實例來實現(xiàn)免密。

跨賬號

  • 個人版

  • 企業(yè)版

無法自動免密,需要配置RAM角色來實現(xiàn)免密。

請根據(jù)您的賬號和ACR實例情況選擇對應的配置:

指定RAM角色以限制免密范圍

在ACR實例與待創(chuàng)建的ECI實例等資源屬于同一阿里云賬號的前提下,如果ACR實例是個人版ACR,或者是使用默認域名的企業(yè)版ACR,則默認自動免密。此時,您可以按需配置RAM角色來限制免密范圍,例如只允許某一ACR實例自動免密。

說明

默認情況下,ECI使用服務關聯(lián)角色AliyunServiceRoleForECI來獲取其他云服務的訪問權限,以便創(chuàng)建ECI資源,該角色包含了拉取ACR鏡像的權限,適用于同賬號下的所有個人版ACR和使用默認域名的企業(yè)版ACR,無法進行細粒度控制。

配置步驟包含以下兩步:

步驟一:創(chuàng)建RAM角色并授權

  1. 創(chuàng)建一個可信實體為阿里云服務的RAM角色。具體操作,請參見創(chuàng)建可信實體為阿里云服務的RAM角色

    需要注意的配置項如下:

    • 可信實體類型:阿里云服務

    • 角色類型:普通服務角色

    • 角色名稱:示例為acr-test

    • 受信服務:彈性容器實例ECI

  2. 創(chuàng)建自定義權限策略。具體操作,請參見創(chuàng)建自定義權限策略

    權限策略的內容示例如下,表示只允許拉取指定ACR實例的鏡像。關于如何編寫權限策略,請參見權限策略基本元素

    {
    	"Version": "1",
    	"Statement": [{
    		"Effect": "Allow",
    		"Action": [
    			"cr:Get*",
    			"cr:List*",
    			"cr:Pull*"
    		],
    		"Resource": [
    			"acs:cr:cn-hangzhou:1609982529******:instance/cri-nwj395hgf6f3****"
    		]
    	}]
    }
  3. 為RAM角色綁定自定義權限策略。具體操作,請參見為RAM角色授權

  4. 找到新創(chuàng)建的acr-test角色,單擊角色名稱進入詳情頁面,確認權限并獲取ARN。

    ACR-RAM0.png

步驟二:指定RAM角色

創(chuàng)建ECI Pod和ImageCache時,您可以添加Annotation(k8s.aliyun.com/acr-service-arns)來指定創(chuàng)建資源時使用的RAM角色。

以創(chuàng)建ECI Pod為例,YAML如下:

重要
  • Annotation請?zhí)砑釉赑od的metadata下,例如:創(chuàng)建Deployment時,Annotation需添加在spec>template>metadata下。

  • 僅支持在創(chuàng)建ECI Pod時添加ECI相關Annotation來生效ECI功能,更新ECI Pod時添加或者修改ECI相關Annotation均不會生效。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:                  
        k8s.aliyun.com/acr-service-arns: "acs:ram::1609982529******:role/acr-test" #指定使用的RAM角色
    spec:
      containers:
      - name: nginx
        image: test****-registry.cn-hangzhou.cr.aliyuncs.com/eci_test/nginx:1.0   #鏡像需屬于RAM角色允許的ACR實例
        ports:
        - containerPort: 80

指定ACR實例來配置ACR企業(yè)版免密

在ACR實例與待創(chuàng)建的ECI實例屬于同一阿里云賬號的前提下,如果ACR企業(yè)版實例使用自定義域名,則需要指定ACR企業(yè)版實例來配置免密。配置方式為添加k8s.aliyun.com/acr-instance-ids的Annotation來指定ACR實例ID。

說明

ACR企業(yè)版實例支持跨地域使用,即指定的ACR企業(yè)版實例與Pod的所屬地域可以不同。指定時,需在ACR實例ID前加上所屬地域,例如cn-beijing:cri-j36zhodptmyq****

創(chuàng)建ECI Pod

創(chuàng)建ECI Pod時,您可以在Pod metadata中添加Annotation(k8s.aliyun.com/acr-instance-ids)來指定ACR實例。

重要
  • Annotation請?zhí)砑釉赑od的metadata下,例如:創(chuàng)建Deployment時,Annotation需添加在spec>template>metadata下。

  • 僅支持在創(chuàng)建ECI Pod時添加ECI相關Annotation來生效ECI功能,更新ECI Pod時添加或者修改ECI相關Annotation均不會生效。

配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/acr-instance-ids: "cri-j36zhodptmyq****"      #指定ACR實例ID
    spec:
      containers:
      - name: nginx
        image: test****-registry.example.com/eci_test/nginx:1.0   #指定使用自定義域名的ACR企業(yè)版鏡像
        ports:
        - containerPort: 80

創(chuàng)建ImageCache

創(chuàng)建ImageCache時,您可以在ImageCache的metadata中添加Annotation(k8s.aliyun.com/acr-instance-ids)來指定ACR實例。配置示例如下:

apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
  name: imagecache-sample
  annotations:
    k8s.aliyun.com/acr-instance-ids: "cri-j36zhodptmyq****" #指定ACR實例ID
spec:
  images: 
  - test****-registry.example.com/eci_test/nginx:1.0   #指定使用自定義域名的ACR企業(yè)版鏡像
  imagePullSecrets:
  - default:secret1
  - default:secret2
  - kube-system:secret3
  imageCacheSize:
   25
  retentionDays:
   7

授權RAM角色來配置跨賬號免密

如果ACR實例與待創(chuàng)建的ECI實例不屬于同一阿里云賬號,則需要分別在兩個賬號下配置RAM角色并完成授權后,才能實現(xiàn)免密。

配置步驟包含以下兩步:

步驟一:創(chuàng)建RAM角色并授權

  1. 在ECI實例等資源歸屬賬號A下創(chuàng)建RAM角色并授權。

    1. 創(chuàng)建一個可信實體為阿里云服務的RAM角色。具體操作,請參見創(chuàng)建可信實體為阿里云服務的RAM角色

      需要注意的配置項如下:

      • 可信實體類型:阿里云服務

      • 角色類型:普通服務角色

      • 角色名稱:示例為role-assume

      • 受信服務:彈性容器實例ECI

    2. 為role-assume角色授予調用STS服務AssumeRole接口的權限。具體操作,請參見為RAM角色精確授權

      要添加的權限類型為系統(tǒng)策略,權限策略名稱為AliyunSTSAssumeRoleAccess

    3. 找到新創(chuàng)建的role-assume角色,單擊角色名稱進入詳情頁面,確認權限和信任策略,并獲取ARN。

      • 權限和ARN

        免密拉取ACR-RAM1.png
      • 信任策略

        免密拉取ACR-RAM2.png
  2. 在ACR實例歸屬賬號B下創(chuàng)建RAM角色并授權。

    1. 創(chuàng)建一個可信實體為阿里云賬號的RAM角色。具體操作,請參見創(chuàng)建可信實體為阿里云賬號的RAM角色

      需要注意的配置項如下:

      • 可信實體類型:阿里云賬號

      • 角色名稱:示例為role-acr

      • 信任的云賬號:其他云賬號,此處填寫ECI實例等資源歸屬賬號A

    2. 為role-acr角色授予拉取ACR鏡像的權限。具體操作,請參見為RAM角色精確授權

      要添加的權限類型為系統(tǒng)策略,權限策略名稱為AliyunContainerRegistryFullAccess

    3. 修改信任策略,將role-acr角色授信給role-assume角色。具體操作,請參見修改RAM角色的信任策略

      默認情況下,role-acr角色可以被賬號A下授權的任何RAM用戶或RAM角色扮演。建議您修改信任策略進行精確授信。

      Principal處,將RAM字段的值改為role-assume角色的ARN,則表示role-acr角色只可以被role-assume角色扮演。示例如下:

      "Principal": {
      	"RAM": [
      		"acs:ram::1609982529******:role/role-assume"
      	]
      }
    4. 確認權限和信任策略,并獲取ARN。

      • 權限和ARN

        免密拉取ACR-RAM3.png
      • 信任策略

        免密拉取ACR-RAM4.png

步驟二:指定RAM角色創(chuàng)建資源

創(chuàng)建ECI Pod和ImageCache時,您可以添加Annotation來指定其他阿里云賬號下的ACR實例拉取鏡像。相關注意事項如下:

  • 如果ACR實例屬于其他阿里云賬號,則必須添加k8s.aliyun.com/acr-service-arnsk8s.aliyun.com/acr-user-arns兩個Annotation來指定RAM角色,以配置權限。

    • k8s.aliyun.com/acr-service-arns:ECI資源歸屬賬號下的RAM角色的ARN。

    • k8s.aliyun.com/acr-user-arns:ACR實例歸屬賬號下的RAM角色的ARN。

  • 如果ACR實例為使用自定義域名的企業(yè)版實例,則必須添加k8s.aliyun.com/acr-instance-ids的Annotation來指定ACR實例。

    說明

    ACR企業(yè)版實例支持跨地域使用,即指定的ACR企業(yè)版實例與Pod的所屬地域可以不同。指定時,需在ACR實例ID前加上所屬地域,例如cn-beijing:cri-j36zhodptmyq****

創(chuàng)建ECI Pod

創(chuàng)建ECI Pod時,您可以在Pod metadata中添加以下Annotation來指定其他阿里云賬號下的ACR實例:

annotations:
    k8s.aliyun.com/acr-instance-ids: "cri-j36zhodptmyq****" 
    k8s.aliyun.com/acr-service-arns: "acs:ram::1609982529******:role/role-assume"
    k8s.aliyun.com/acr-user-arns: "acs:ram::1298452580******:role/role-acr"
重要
  • Annotation請?zhí)砑釉赑od的metadata下,例如:創(chuàng)建Deployment時,Annotation需添加在spec>template>metadata下。

  • 僅支持在創(chuàng)建ECI Pod時添加ECI相關Annotation來生效ECI功能,更新ECI Pod時添加或者修改ECI相關Annotation均不會生效。

完整YAML示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/acr-instance-ids: "cri-j36zhodptmyq****"                        
        k8s.aliyun.com/acr-service-arns: "acs:ram::1609982529******:role/role-assume"
        k8s.aliyun.com/acr-user-arns: "acs:ram::1298452580******:role/role-acr"
    spec:
      containers:
      - name: nginx
        image: test****-registry.example.com/eci_test/nginx:1.0   #指定使用自定義域名的ACR企業(yè)版鏡像
        ports:
        - containerPort: 80

創(chuàng)建ImageCache

創(chuàng)建ImageCache時,您可以在ImageCache的metadata中添加以下Annotation來指定其他阿里云賬號下的ACR實例:

annotations:
    k8s.aliyun.com/acr-instance-ids: "cri-j36zhodptmyq****"
    k8s.aliyun.com/acr-service-arns: "acs:ram::1609982529******:role/role-assume"
    k8s.aliyun.com/acr-user-arns: "acs:ram::1298452580******:role/role-acr"

完整YAML示例如下:

apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
  name: imagecache-sample
  annotations:
    k8s.aliyun.com/acr-instance-ids: "cri-j36zhodptmyq****"
    k8s.aliyun.com/acr-service-arns: "acs:ram::1609982529******:role/role-assume"
    k8s.aliyun.com/acr-user-arns: "acs:ram::1298452580******:role/role-acr"
spec:
  images: 
  - test****-registry.example.com/eci_test/nginx:1.0   #指定使用自定義域名的ACR企業(yè)版鏡像
  imagePullSecrets:
  - default:secret1
  - default:secret2
  - kube-system:secret3
  imageCacheSize:
   25
  retentionDays:
   7