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

用參數(shù)倉庫的加密參數(shù)和aliyun-cli管理執(zhí)行命令中的密碼

背景

用戶在執(zhí)行遠(yuǎn)程命令RunCommand(云助手)時,腳本中有時會用到密碼等數(shù)據(jù)。在編寫腳本命令時,明文寫入密碼會有泄露的風(fēng)險。如果直接使用 什么是密鑰管理服務(wù)服務(wù)則需要在腳本里維護(hù)加密后的值,這種方式在用戶使用時相對來說較為麻煩。

系統(tǒng)運(yùn)維管理 OOS(CloudOps Orchestration Service)中的參數(shù)倉庫為用戶提供了一種較為簡便的方式,通過加密參數(shù)來維護(hù)用戶的密碼,并在RunCommand 命令中使用。這種方式的優(yōu)勢包括:

  1. 保證用戶的密碼在加密參數(shù)中,而不被泄露。

  2. 不需要在命令中維護(hù)密碼明文或者給密碼加密后的值,在腳本命令中只需寫明引用的加密參數(shù)的名稱。

  3. 如果密碼變更,只需更新對應(yīng)的加密參數(shù),不需要對執(zhí)行遠(yuǎn)程命令RunCommand(云助手)的腳本或者OOS模板做改動。

重要

前置條件

  1. 執(zhí)行命令的ECS實(shí)例上需要在Linux上安裝阿里云CLI(如果實(shí)例上安裝的aliyun-cli 版本不支持OOS GetSecretParameter需要升級到最新的版本)。

  2. 執(zhí)行命令的ECS實(shí)例上需要安裝 jq

  3. 執(zhí)行命令的ECS實(shí)例需要被授予實(shí)例角色,該角色至少需要包括OOS GetSecretParameter和KMS GetSecretValue 權(quán)限。

操作步驟

步驟一:創(chuàng)建加密參數(shù)

用戶可以通過參數(shù)倉庫控制臺和aliyun-cli兩種方式創(chuàng)建加密參數(shù)。

  1. 在參數(shù)倉庫控制臺上創(chuàng)建加密參數(shù)。

    詳細(xì)操作步驟如下:

    參數(shù)倉庫控制臺上創(chuàng)建加密參數(shù),詳細(xì)操作步驟請參考加密參數(shù)文檔。若您需要更換成自己創(chuàng)建的KMS ID,單擊KMS密鑰ID下面的選擇框,搜索您的目標(biāo)KMS ID。(創(chuàng)建KMS Key 請參考本文附錄一。)runcommand-secret-03

  2. 使用aliyun-cli創(chuàng)建加密參數(shù)。

    參考以下腳本示例:

    aliyun oos CreateSecretParameter --Name mysql-password --Description "數(shù)據(jù)庫密碼加密參數(shù)" --Value "SecretMySQLPassword" --RegionId cn-hangzhou

步驟二:在RunCommand中使用加密參數(shù)

  1. 在RunCommand命令中,利用aliyun-cli 和 jq在腳本中獲取加密參數(shù)的值

    1. 在Linux上安裝阿里云CLI(如果實(shí)例上安裝的aliyun-cli 版本不支持OOS GetSecretParameter需要升級到最新的版本)。

    2. 安裝 jq

    3. 推薦使用ECS實(shí)例角色來執(zhí)行aliyun-cli,需要在實(shí)例上配置EcsRamRole(配置EcsRamRole具體步驟請參考本文附錄二)。

    4. 在腳本中使用獲取到的加密參數(shù)值做后續(xù)操作。

    重要

    為了保證加密數(shù)據(jù)不被泄露,不應(yīng)在腳本中打印加密參數(shù)值。

  2. 演示aliyun-cli腳本如下

# 從Parameter Store中獲取加密參數(shù)mysql-password的值,保存在變量db_password中
db_password=`aliyun oos GetSecretParameter --Name mysql-password --WithDecryption true --mode EcsRamRole --ram-role-name secret-parameter-instance-role --region cn-hangzhou |jq .Parameter.Value -r`

# 用變量db_password做后續(xù)操作,例如創(chuàng)建一個生產(chǎn)用的數(shù)據(jù)庫
mysql -u$db_user -p$db_password -e "create database database;"

通過系統(tǒng)運(yùn)維管理的批量操作實(shí)例功能執(zhí)行上述命令:runcommand-secret-15

附錄一:創(chuàng)建KMS

  1. 登錄KMS控制臺

  2. 在頁面的左上角,選擇需要創(chuàng)建加密參數(shù)所在的地域。

  3. 單擊創(chuàng)建密鑰。

    runcommand-secret-01

  4. 參考創(chuàng)建密鑰文檔的規(guī)則步驟,來創(chuàng)建具體的密鑰。

附錄二:創(chuàng)建EcsRamRole并將其授予實(shí)例

  1. 登錄RAM角色管理控制臺

  2. 單擊權(quán)限管理>權(quán)限策略>創(chuàng)建權(quán)限策略

  3. 填寫權(quán)限策略名稱,并單擊腳本配置。將以下最小權(quán)限策略填充進(jìn)去,單擊確定,權(quán)限策略就創(chuàng)建完成了。最小權(quán)限策略如下:

    runcommand-secret-16

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "kms:GetSecretValue"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "oos:GetSecretParameter"
                ],
                "Effect": "Allow",
                "Resource": "*"
            }
        ]
    }
  4. 完成權(quán)限策略創(chuàng)建后,在RAM控制臺主頁面,選擇身份管理>角色>創(chuàng)建角色。在當(dāng)前可信實(shí)體類型選項(xiàng)中,選擇阿里云服務(wù),單擊下一步。如下圖:image.png

  5. 填寫角色名稱,并選擇受信服務(wù)(云服務(wù)器)。runcommand-secret-05

  6. 角色創(chuàng)建完成后單擊為角色授權(quán)runcommand-secret-18

  7. 單擊自定義策略,找到在步驟3中已經(jīng)創(chuàng)建完成的權(quán)限策略,為此角色授權(quán)后單擊確定。runcommand-secret-19

  8. 將已經(jīng)創(chuàng)建的角色賦給實(shí)例。

    1. 單臺實(shí)例授權(quán)角色時,使用ECS控制臺,找到創(chuàng)建完成的實(shí)例,授予實(shí)例角色。runcommand-secret-20runcommand-secret-21

    2. 使用ACS-ECS-BulkyAttachInstanceRamRole模板,直接輸入角色名稱,并選擇需要授予角色的一臺或多臺實(shí)例,來給實(shí)例授予角色。模板方式如下圖所示:

      runcommand-secret-07