
# CCE容器部署APM探针支持对APM的AK/SK加密
#### 背景
在CCE容器中部署APM探针时，出于安全考虑，可以对APM的AK/SK进行加密。
#### 操作步骤
1. 生成一个含有解密方法的jar包，假设jar包名为demo.jar，内置解密类为com.demo.DecryptDemo，解密方法为decrypt（注意decrypt的是静态方法）。然后将该jar打包一个镜像，上传到镜像仓，获取密钥方法参见[访问密钥](https://support.huaweicloud.com/usermanual-apm2/apm_07_0034.html)。
2. 在CCE deployment yaml中添加一个initContainer属性，如下所示。 
   示例：
   1. [1]中上传的镜像地址为swr.cn-north-5.myhuaweicloud.com/hwstaff_pub_apmpaasw3/decrypt:v2
   
   2. 解密的类名为com.demo.DecryptDemo.jar，解密方法为decrypt。 按如下方式添加一个initContainer，其中以下字段需要根据实际值填写。
      - image**: swr.cn-north-5.myhuaweicloud.com/hwstaff_pub_apmpaasw3/decrypt:v2**
      
      - **/root/com.demo.DecryptDemo.jar**
      
      - className**=com.demo.DecryptDemo** **.jar**
      
      - methodName=**decrypt**
      
      
      ```
      initContainers:
        - name: init-secret
          image: swr.cn-north-5.myhuaweicloud.com/hwstaff_pub_apmpaasw3/decrypt:v2
          command:
            - /bin/sh
            - '-c'
            - cp /root/com.demo.DecryptDemo.jar /var/init/secret/apm-javaagent/ext; sed -i 's%#decrypt.className=.*%decrypt.className=com.demo.DecryptDemo.jar%g' /var/init/secret/apm-javaagent/apm.config; sed -i 's%#decrypt.methodName=.*%decrypt.methodName=decrypt%g' /var/init/secret/apm-javaagent/apm.config
          resources:
            limits:
              cpu: 100m
              memory: 100Mi
            requests:
              cpu: 100m
              memory: 100Mi
          volumeMounts:
            - name: paas-apm2
              mountPath: /var/init/secret
      ```
      添加该initContainer可以实现将jar包复制到apm-javaagent/ext目录下，以及修改配置文件的目的。
      
   
   
   
   
3. 在apm页面获取AK和SK，然后按照用户自己的要求对SK进行加密处理，将AK和加密后的SK替换yaml文件中的如下值。 
   ![](https://support.huaweicloud.com/bestpractice-apm2/zh-cn_image_0000002543366899.png "点击放大")
   
   
   
4. 保存配置对CCE实例进行升级即可。
 
