このトピックでは、Alibaba Cloud CLIを使用してジェネリックシークレットを管理する方法について説明します。 また、Key Management Service (KMS) コンソールで、またはAPI操作を呼び出してジェネリックシークレットを管理することもできます。
ジェネリックシークレットの作成
- 例1: 暗号化キーを指定しない汎用シークレットの作成
次のコマンドを実行してCreateSecret操作を呼び出し、暗号化キーを指定しないジェネリックシークレットを作成します。 Secrets Managerは、デフォルトの顧客マスターキー (CMK) を使用してシークレット値を暗号化します。
aliyun kms CreateSecret \ -- SecretName db_cred \ -- SecretData "{\" uname\": \" alice\", \" pwd\": \" 12 ****\"}" \ -- VersionId v1
KMSは次の結果を返します。
{ "Arn": "acs:kms:cn-shanghai:111760096384 ****:secret/db_cred" 、 "RequestId": "ef0e4234-085c-4676-9ab6-159f2338aaf0" 、 "SecretName": "db_cred" 、 "SecretType": "Generic" 、 "VersionId": "v1" }
- 例2: 暗号化キーを指定したジェネリックシークレットの作成
次のコマンドを実行してCreateSecret操作を呼び出し、暗号化キーを指定してジェネリックシークレットを作成します。 Secrets Managerは、指定されたCMKを使用してシークレット値を暗号化します。
aliyun kms CreateSecret \ -- SecretName ssh_key \ -- SecretData ssh-key-blob \ -- VersionId v1 \ -- EncryptionKeyIdの例-CMK-Id
注- Secrets Managerは、指定されたCMKを使用してデータキーを生成します。 データ鍵は、秘密値の平文を暗号化するために使用される。
- CreateSecret操作を呼び出してジェネリックシークレットを作成するときにCMKを指定する場合は、指定したCMKに対するkms:GenerateDataKeyアクセス許可が必要です。
KMSは次の結果を返します。
{ "Arn": "acs:kms:cn-shanghai:111760096384 ****:secret/ssh_key" 、 "RequestId": "ef0e4234-085c-4676-9ab6-159f2338aaf0" 、 "SecretName": "ssh_key" 、 "SecretType": "Generic" 、 "VersionId": "v1" }
ジェネリックシークレットの照会
次のコマンドを実行して、ListSecrets操作を呼び出し、ジェネリックシークレットを照会します。
aliyun kms ListSecrets
KMSは次の結果を返します。
{
"SecretList": {
"秘密": [
{
"SecretName": "db_cred" 、
"SecretType": "Generic" 、
"CreateTime": "2020-01-22T03:55:18Z" 、
"UpdateTime": "2020-01-22T03:55:18Z"
},
{
"SecretName": "ssh_key" 、
"SecretType": "Generic" 、
"CreateTime": "2020-01-22T03:57:09Z" 、
"UpdateTime": "2020-01-22T03:57:09Z"
}
]
},
"RequestId": "75aebbde-be68-4cab-ba6e-e4925b61 ****" 、
"PageNumber":1、
"PageSize":10、
"TotalCount": 2
}
ジェネリックシークレットの値を照会する
次のコマンドを実行してGetSecretValue操作を呼び出し、ジェネリックシークレットの値を照会します。
aliyun kms GetSecretValue -- SecretName ssh_key
KMSは次の結果を返します。
{
"CreateTime": "2021-07-08T05:51:50Z" 、
"RequestId": "1415f5c7-ecb2-495e-8051-4cd466022c1f" 、
"SecretData": "{\" test\":\" test\"}" 、
"SecretDataType": "テキスト" 、
"SecretName": "ssh_key" 、
"SecretType": "Generic" 、
"VersionId": "v1" 、
"VersionStages": {
"VersionStage": [
"ACSCurrent"
]
}
}
ジェネリックシークレットのメタデータの照会
次のコマンドを実行してDescribeSecret操作を呼び出し、ジェネリックシークレットのメタデータを照会します。
aliyun kms DescribeSecret -- SecretName ssh_key
KMSは次の結果を返します。
{
"Arn": "acs:kms:cn-shanghai:111760096384 ****:secret/ssh_key" 、
"SecretName": "ssh_key" 、
"SecretType": "Generic" 、
"EncryptionKeyId": "例-CMK-Id" 、
"Description": "",
"CreateTime": "2020-01-22T03:57:09Z" 、
"UpdateTime": "2020-01-22T03:57:09Z" 、
"RequestId": "ca61398f-e61e-4552-aa7e-957955f6125s"
}
ジェネリックシークレットの削除
- 次のいずれかのコマンドを実行して、DeleteSecret操作を呼び出してジェネリックシークレットを削除します。
- リカバリウィンドウが指定されていないジェネリックシークレットを削除します。 デフォルトでは、シークレットが削除されてから30日以内にシークレットを回復できます。
aliyun kms DeleteSecret -- SecretName ssh_key
KMSは次の結果を返します。
{ "SecretName": "ssh_key" 、 "RequestId": "3e54b02b-6461-46bb-afd5-dbd29d96eead" 、 "PlannedDeleteTime": "2020-02-21T04:24:04.58616562Z" }
- ジェネリックシークレットを削除し、7日間の回復期間を指定します。 シークレットが削除されてから7日以内にシークレットを回復できます。
aliyun kms DeleteSecret -- SecretName ssh_key -- RecoveryWindowInDays 7
KMSは次の結果を返します。
{ "SecretName": "ssh_key" 、 "RequestId": "95ec4f18-8f97-4fd5-b7c6-1588979dse4s" 、 "PlannedDeleteTime": "2020-01-29T04:25:14.165242211Z" }
- ジェネリックシークレットを強制的に削除します。 秘密は回復できません。
aliyun kms DeleteSecret -- SecretName ssh_key -- ForceDeleteWithoutRecovery true
KMSは次の結果を返します。
{ "SecretName": "ssh_key" 、 "RequestId": "75efc9c3-8e21-4e38-b6e4-486886be1546" 、 "PlannedDeleteTime": "2020-01-22T12:28:22.006884739 08:00" }
- リカバリウィンドウが指定されていないジェネリックシークレットを削除します。 デフォルトでは、シークレットが削除されてから30日以内にシークレットを回復できます。
- 次のコマンドを実行してRestoreSecret操作を呼び出し、リカバリウィンドウ内でシークレットをリカバリします。
aliyun kms RestoreSecret -- SecretName ssh_key
KMSは次の結果を返します。
{ "RequestId": "12770cee-92af-42f5-88e0-cbaa7e0c1254" 、 "SecretName": "ssh_key" }
ジェネリックシークレットの回転
ジェネリックシークレットをローテーションする方法の詳細については、「ジェネリックシークレットの回転」をご参照ください。