이 설명서는 의 버전 1 AWS CLI 전용입니다. 의 버전 2와 관련된 설명서는 버전 2 사용 설명서 를 AWS CLI참조하세요.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS KMS 사용 예제 AWS CLI
다음 코드 예제에서는 AWS Command Line Interface 와 함께 를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다 AWS KMS.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.
각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.
주제
작업
다음 코드 예시에서는 cancel-key-deletion
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
고객 관리형 KMS 키의 예약된 삭제를 취소하려면
다음
cancel-key-deletion
예제에서는 고객 관리형 KMS 키의 예약된 삭제를 취소합니다.aws kms cancel-key-deletion \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
cancel-key-deletion
명령이 성공하면 예약된 삭제가 취소됩니다. 그러나 KMS 키의 키 상태는Disabled
이므로 암호화 작업에서 KMS 키를 사용할 수 없습니다. 기능을 복원하려면enable-key
명령을 사용합니다.자세한 내용은 Key Management Service 개발자 안내서의 키 삭제 예약 및 취소를 참조하세요. AWS
-
자세한 API 내용은 명령 참조CancelKeyDeletion
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 connect-custom-key-store
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
사용자 지정 키 스토어를 연결하려면
다음
connect-custom-key-store
예제에서는 지정된 사용자 지정 키 스토어를 다시 연결합니다. 이와 같은 명령을 사용하여 사용자 지정 키 스토어를 처음 연결하거나 연결이 끊긴 키 스토어를 다시 연결할 수 있습니다.이 명령을 사용하여 AWS CloudHSM 키 스토어 또는 외부 키 스토어를 연결할 수 있습니다.
aws kms connect-custom-key-store \ --custom-key-store-id
cks-1234567890abcdef0
이 명령은 출력을 반환하지 않습니다. 명령이 유효한지 확인하려면
describe-custom-key-stores
명령을 사용하세요.AWS CloudHSM 키 스토어 연결에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS CloudHSM 키 스토어 연결 및 연결을 참조하세요.
외부 키 스토어 연결에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 외부 키 스토어 연결 및 연결을 참조하세요.
-
자세한 API 내용은 명령 참조ConnectCustomKeyStore
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 create-alias
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키의 별칭을 생성하려면
다음
create-alias
명령은 KMS 키 ID 로 식별되는 키example-alias
의 이름이 인 별칭을 생성합니다1234abcd-12ab-34cd-56ef-1234567890ab
.별칭 이름은
alias/
로 시작해야 합니다. 로 시작하는 별칭 이름은 사용하지 마세요.alias/aws
에서 사용하도록 예약되어 있습니다 AWS.aws kms create-alias \ --alias-name
alias/example-alias
\ --target-key-id1234abcd-12ab-34cd-56ef-1234567890ab
이 명령은 출력을 반환하지 않습니다. 새 별칭을 보려면
list-aliases
명령을 사용하세요.자세한 내용은 AWS Key Management Service 개발자 안내서의 별칭 사용을 참조하세요.
-
자세한 API 내용은 명령 참조CreateAlias
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 create-custom-key-store
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: AWS CloudHSM 키 스토어 생성
다음
create-custom-key-store
예제에서는 필요한 파라미터를 사용하여 AWS 클라우드HSM 클러스터가 지원하는 AWS 클라우드HSM 키 스토어를 생성합니다. 를 추가할 수도 있습니다custom-key-store-type``parameter with the default value: ``AWS_CLOUDHSM
.에서
trust-anchor-certificate
명령에 대한 파일 입력을 지정하려면 AWS CLIfile://
접두사가 필요합니다.aws kms create-custom-key-store \ --custom-key-store-name
ExampleCloudHSMKeyStore
\ --cloud-hsm-cluster-idcluster-1a23b4cdefg
\ --key-store-passwordkmsPswd
\ --trust-anchor-certificatefile://customerCA.crt
출력:
{ "CustomKeyStoreId": cks-1234567890abcdef0 }
자세한 내용은 Key Management Service 개발자 안내서의 AWS 클라우드HSM 키 스토어 생성을 참조하세요. AWS
예제 2: 퍼블릭 엔드포인트 연결을 사용하여 외부 키 스토어를 생성하려면
다음
create-custom-key-store
예제에서는 인터넷을 통해 와 AWS KMS 통신하는 외부 키 스토어(XKS)를 생성합니다.이 예제에서 는 의 선택적 접두사를
XksProxyUriPath
사용합니다example-prefix
.NOTE: 버전 1.0을 사용하는 AWS CLI 경우 파라미터와 같은 HTTP 또는 HTTPS 값으로 XksProxyUriEndpoint 파라미터를 지정하기 전에 다음 명령을 실행합니다.
aws configure set
cli_follow_urlparam
false
그렇지 않으면 AWS CLI 버전 1.0이 파라미터 값을 해당 URI 주소에 있는 콘텐츠로 바꿉니다.
aws kms create-custom-key-store \ --custom-key-store-name
ExamplePublicEndpointXKS
\ --custom-key-store-typeEXTERNAL_KEY_STORE
\ --xks-proxy-connectivityPUBLIC_ENDPOINT
\ --xks-proxy-uri-endpoint"https://myproxy.xks.example.com"
\ --xks-proxy-uri-path"/example-prefix/kms/xks/v1"
\ --xks-proxy-authentication-credential"AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
출력:
{ "CustomKeyStoreId": cks-2234567890abcdef0 }
자세한 내용은 Key Management Service 개발자 안내서의 외부 키 스토어 생성을 참조하세요. AWS
예제 3: VPC 엔드포인트 서비스 연결을 사용하여 외부 키 스토어를 생성하려면
다음
create-custom-key-store
예제에서는 Amazon VPC 엔드포인트 서비스를 사용하여 와 통신하는 외부 키 스토어(XKS)를 생성합니다 AWS KMS.NOTE: 버전 1.0을 사용하는 AWS CLI 경우 파라미터와 같은 HTTP 또는 HTTPS 값으로 XksProxyUriEndpoint 파라미터를 지정하기 전에 다음 명령을 실행합니다.
aws configure set
cli_follow_urlparam
false
그렇지 않으면 AWS CLI 버전 1.0이 파라미터 값을 해당 URI 주소에 있는 콘텐츠로 바꿉니다.
aws kms create-custom-key-store \ --custom-key-store-name
ExampleVPCEndpointXKS
\ --custom-key-store-typeEXTERNAL_KEY_STORE
\ --xks-proxy-connectivityVPC_ENDPOINT_SERVICE
\ --xks-proxy-uri-endpoint"https://myproxy-private.xks.example.com"
\ --xks-proxy-uri-path"/kms/xks/v1"
\ --xks-proxy-vpc-endpoint-service-name"com.amazonaws.vpce.us-east-1.vpce-svc-example1"
\ --xks-proxy-authentication-credential"AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
출력:
{ "CustomKeyStoreId": cks-3234567890abcdef0 }
자세한 내용은 Key Management Service 개발자 안내서의 외부 키 스토어 생성을 참조하세요. AWS
-
자세한 API 내용은 명령 참조CreateCustomKeyStore
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 create-grant
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
권한 부여를 생성하는 방법
다음
create-grant
예제에서는exampleUser
사용자가1234abcd-12ab-34cd-56ef-1234567890ab
예제 KMS 키에서decrypt
명령을 사용할 수 있는 권한을 생성합니다. 사용 중지하는 보안 주체는adminRole
역할입니다. 이 권한 부여는decrypt
요청의 암호화 컨텍스트에"Department": "IT"
키-값 페어가 포함된 경우에만 이 권한을 허용하도록EncryptionContextSubset
권한 부여 제약 조건을 사용합니다.aws kms create-grant \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --grantee-principalarn:aws:iam::123456789012:user/exampleUser
\ --operationsDecrypt
\ --constraintsEncryptionContextSubset={Department=IT}
\ --retiring-principalarn:aws:iam::123456789012:role/adminRole
출력:
{ "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "GrantToken": "<grant token here>" }
권한 부여에 대한 자세한 정보를 보려면
list-grants
명령을 사용하세요.자세한 내용은 AWS Key Management Service 개발자 안내서의 에서 권한 부여 AWS KMS를 참조하세요.
-
자세한 API 내용은 명령 참조CreateGrant
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 create-key
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 에서 고객 관리형 KMS 키를 생성하려면 AWS KMS
다음
create-key
예제에서는 대칭 암호화 KMS 키를 생성합니다.대칭 암호화 KMS 키인 기본 키를 생성하려면 파라미터를 지정할 필요가 없습니다. 이러한 파라미터의 기본값은 대칭 암호화 키를 생성합니다.
이 명령은 키 정책을 지정하지 않으므로 프로그래밍 방식으로 생성된 KMS 키에 대한 기본 키 정책을 키에 가져옵니다. KMS 키 정책을 보려면
get-key-policy
명령을 사용하세요. 키 정책을 변경하려면put-key-policy
명령을 사용하세요.aws kms create-key
create-key
명령은 키 ID 및 새 KMS 키의 키 메타데이터ARN를 반환합니다. 이러한 값을 사용하여 다른 AWS KMS 작업의 KMS 키를 식별할 수 있습니다. 출력에 태그가 포함되지 않습니다. KMS 키의 태그를 보려면 를 사용합니다list-resource-tags command
.출력:
{ "KeyMetadata": { "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2017-07-05T14:04:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_KMS" "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }
참고: 이
create-key
명령은 별칭을 지정할 수 없습니다. 새 KMS 키에 대한 별칭을 생성하려면create-alias
명령을 사용합니다.자세한 내용은 AWS Key Management Service 개발자 안내서의 키 생성을 참조하세요.
예제 2: 암호화 및 복호화를 위한 비대칭 RSA KMS 키 생성
다음
create-key
예제에서는 암호화 및 복호화를 위한 비대칭 키 페어가 KMS 포함된 RSA 키를 생성합니다.aws kms create-key \ --key-spec
RSA_4096
\ --key-usageENCRYPT_DECRYPT
출력:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2021-04-05T14:04:55-07:00", "CustomerMasterKeySpec": "RSA_4096", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "RSA_4096", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_KMS" } }
자세한 내용은 Key AWS Management Service 개발자 안내서의 에서 비대칭 AWS KMS 키를 참조하세요.
예제 3: 서명 및 확인을 위한 비대칭 타원 곡선 KMS 키 생성
서명 및 확인을 위한 비대칭 타원 곡선(ECC) KMS 키 페어가 포함된 비대칭 키를 생성합니다.
--key-usage
파라미터는SIGN_VERIFY
가 ECC KMS 키에 대해 유효한 유일한 값인 경우에도 필요합니다.aws kms create-key \ --key-spec
ECC_NIST_P521
\ --key-usageSIGN_VERIFY
출력:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "ECC_NIST_P521", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "ECC_NIST_P521", "KeyState": "Enabled", "KeyUsage": "SIGN_VERIFY", "MultiRegion": false, "Origin": "AWS_KMS", "SigningAlgorithms": [ "ECDSA_SHA_512" ] } }
자세한 내용은 Key AWS Management Service 개발자 안내서의 에서 비대칭 AWS KMS 키를 참조하세요.
예제 4: HMAC KMS 키 생성
다음
create-key
예제에서는 384비트 HMAC KMS 키를 생성합니다.--key-usage
파라미터의GENERATE_VERIFY_MAC
값은 HMAC KMS 키에 대해 유효한 유일한 값이지만 필수입니다.aws kms create-key \ --key-spec
HMAC_384
\ --key-usageGENERATE_VERIFY_MAC
출력:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-04-05T14:04:55-07:00", "CustomerMasterKeySpec": "HMAC_384", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "HMAC_384", "KeyState": "Enabled", "KeyUsage": "GENERATE_VERIFY_MAC", "MacAlgorithms": [ "HMAC_SHA_384" ], "MultiRegion": false, "Origin": "AWS_KMS" } }
자세한 내용은 HMAC Key Management Service 개발자 안내서의 AWS KMSAWS 에서 키를 참조하세요.
예제 4: 다중 리전 기본 KMS 키를 생성하려면
다음
create-key
예시에서는 다중 리전 프라이머리 대칭 암호화 키를 생성합니다. 모든 파라미터의 기본값은 대칭 암호화 키를 생성하기 때문에 이 KMS 키에는--multi-region
파라미터만 필요합니다. 에서 부울 파라미터가 true임을 나타내 AWS CLI려면 파라미터 이름을 지정하면 됩니다.aws kms create-key \ --multi-region
출력:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", "AWSAccountId": "111122223333", "CreationDate": "2021-09-02T016:15:21-09:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "mrk-1234abcd12ab34cd56ef12345678990ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": true, "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", "Region": "us-west-2" }, "ReplicaKeys": [] }, "Origin": "AWS_KMS" } }
자세한 내용은 Key AWS Management Service 개발자 안내서의 에서 비대칭 AWS KMS 키를 참조하세요.
예제 5: 가져온 KMS 키 구성 요소에 대한 키를 생성하려면
다음
create-key
예제에서는 KMS 키 구성 요소가 없는 키를 생성합니다. 작업이 완료되면 자체 키 구성 요소를 KMS 키로 가져올 수 있습니다. 이 KMS 키를 생성하려면--origin
파라미터를 로 설정합니다EXTERNAL
.aws kms create-key \ --origin
EXTERNAL
출력:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": false, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "PendingImport", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL" } }
자세한 내용은 Key Management Service 개발자 안내서의 키에서 AWS KMS 키 구성 요소 가져오기를 참조하세요. AWS
예제 6: AWS Cloud KMS HSM 키 스토어에서 키를 생성하려면
다음
create-key
예제에서는 지정된 AWS Cloud KMS HSM 키 스토어에서 가 키를 생성합니다. 작업은 에서 KMS AWS KMS 키와 메타데이터를 생성하고 사용자 지정 키 스토어와 연결된 AWS 클라우드HSM 클러스터에 키 구성 요소를 생성합니다.--custom-key-store-id
및--origin
파라미터가 필요합니다.aws kms create-key \ --origin
AWS_CLOUDHSM
\ --custom-key-store-idcks-1234567890abcdef0
출력:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CloudHsmClusterId": "cluster-1a23b4cdefg", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-1234567890abcdef0", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_CLOUDHSM" } }
자세한 내용은 AWS Key Management Service 개발자 안내서의 클라우드HSM 키 스토어를 참조하세요. AWS
예제 7: 외부 KMS 키 스토어에서 키를 생성하려면
다음
create-key
예제에서는 지정된 외부 KMS 키 스토어에 키를 생성합니다. 이 명령에는--custom-key-store-id
,--origin
,--xks-key-id
파라미터가 필요합니다.--xks-key-id
파라미터는 외부 키 관리자에 있는 기존 대칭 암호화 키의 ID를 지정합니다. 이 키는 KMS 키의 외부 키 구성 요소 역할을 합니다.--origin
파라미터의 값은 여야 합니다EXTERNAL_KEY_STORE
.custom-key-store-id
파라미터는 외부 키 스토어 프록시에 연결된 외부 키 스토어를 식별해야 합니다.aws kms create-key \ --origin EXTERNAL_KEY_STORE \ --custom-key-store-id cks-9876543210fedcba9 \ --xks-key-id bb8562717f809024
출력:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-9876543210fedcba9", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL_KEY_STORE", "XksKeyConfiguration": { "Id": "bb8562717f809024" } } }
자세한 내용은 AWS Key Management Service 개발자 안내서의 외부 키 저장소를 참조하세요.
-
자세한 API 내용은 명령 참조CreateKey
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 decrypt
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 대칭 KMS 키(Linux 및 macOS)로 암호화된 메시지를 복호화하려면
다음
decrypt
명령 예제는 를 사용하여 데이터를 복호화하는 권장 방법을 보여줍니다 AWS CLI. 이 버전은 대칭 KMS 키로 데이터를 복호화하는 방법을 보여줍니다.file.In
--ciphertext-blob
파라미터 값을 암호 텍스트에 입력하고fileb://
접두사를 사용합니다. 접두사는 CLI에 바이너리 파일에서 데이터를 읽도록 지시합니다. 파일이 현재 디렉터리에 없는 경우 파일의 전체 경로를 입력합니다. 파일에서 파라미터 값을 읽 AWS CLI는 방법에 대한 자세한 내용은 AWS Command Line 도구 블로그의 Command Line Interface 사용 설명서 및 Best Practices for Local File Parameters<https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/>의 파일 <https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html>에서 파라미터 AWS CLI로드를 참조하세요.암호텍스트를 복호화하기 위한 KMS 키를 지정하세요. 대칭 KMS 키를 사용하여 복호화할 때는--key-id
파라미터가 필요하지 않습니다. AWS KMS 는 암호텍스트의 메타데이터에서 데이터를 암호화하는 데 사용된 KMS 키의 키 ID를 가져올 수 있습니다. AWS 하지만 사용하는 KMS 키를 지정하는 것이 항상 모범 사례입니다. 이 연습을 통해 의도한 KMS 키를 사용하고, 신뢰할 수 없는 KMS 키를 사용하여 암호 텍스트를 실수로 복호화하지 못하도록 할 수 있습니다. 일반 텍스트 출력을 텍스트 값으로 요청합니다.--query
파라미터는 출력에서Plaintext
필드 값만 가져오CLI도록 에 지시합니다.--output
파라미터는 출력을 텍스트로 반환합니다. 일반 텍스트를 Base64로 디코딩하여 파일에 저장합니다. 다음 예시에서는Plaintext
파라미터 값을 Base64 유틸리티에 파이프(|)로 구분하며 유틸리티가 이를 디코딩합니다. 그런 다음 디코딩된 출력을ExamplePlaintext
파일로 리디렉션(>)합니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.
aws kms decrypt \ --ciphertext-blob
fileb://ExampleEncryptedFile
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
\ --queryPlaintext
|
base64
\ --decode>
ExamplePlaintextFile
이 명령은 출력을 생성하지 않습니다.
decrypt
명령의 출력은 base64로 디코딩되어 파일에 저장됩니다.자세한 내용은 AWS 키 관리 서비스 API 참조의 암호 해독을 참조하세요.
예제 2: 대칭 KMS 키를 사용하여 암호화된 메시지를 복호화하려면(Windows 명령 프롬프트)
다음 예시는
certutil
유틸리티를 사용하여 일반 텍스트 데이터를 base64로 디코딩한다는 점을 제외하면 이전 예시와 동일합니다. 이 프로시저에는 다음 예시와 같이 두 개의 명령이 필요합니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.
aws kms decrypt
^
--ciphertext-blobfileb://ExampleEncryptedFile
^
--key-id1234abcd-12ab-34cd-56ef-1234567890ab
^
--outputtext
^
--queryPlaintext
>
ExamplePlaintextFile.base64
certutil
명령을 실행합니다.certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
출력:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.
자세한 내용은 AWS 키 관리 서비스 API 참조의 암호 해독을 참조하세요.
예제 3: 비대칭 KMS 키(Linux 및 macOS)로 암호화된 메시지를 복호화하려면
다음
decrypt
명령 예제는 RSA 비대칭 KMS 키로 암호화된 데이터를 복호화하는 방법을 보여줍니다.비대칭 KMS 키를 사용하는 경우 일반 텍스트를 암호화하는 데 사용되는 알고리즘을 지정하는
encryption-algorithm
파라미터가 필요합니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.
aws kms decrypt \ --ciphertext-blob
fileb://ExampleEncryptedFile
\ --key-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --encryption-algorithmRSAES_OAEP_SHA_256
\ --outputtext
\ --queryPlaintext
|
base64
\ --decode>
ExamplePlaintextFile
이 명령은 출력을 생성하지 않습니다.
decrypt
명령의 출력은 base64로 디코딩되어 파일에 저장됩니다.자세한 내용은 AWS Key Management Service 개발자 안내서의 에서 비대칭 키를 AWS KMS 참조하세요.
-
API 자세한 내용은 AWS CLI 명령 참조 의 암호 해독
을 참조하세요.
-
다음 코드 예시에서는 delete-alias
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
별칭을 AWS KMS 삭제하려면
다음
delete-alias
예시에서는alias/example-alias
별칭을 삭제합니다. 별칭 이름은 alias/로 시작해야 합니다.aws kms delete-alias \ --alias-name
alias/example-alias
이 명령은 출력을 생성하지 않습니다. 별칭을 찾으려면
list-aliases
명령을 사용하세요.자세한 내용은 AWS Key Management Service 개발자 안내서의 별칭 삭제를 참조하세요.
-
자세한 API 내용은 명령 참조DeleteAlias
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 delete-custom-key-store
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
사용자 지정 키 스토어를 삭제하려면
다음
delete-custom-key-store
예제에서는 지정된 사용자 지정 키 스토어를 삭제합니다.AWS 클라우드HSM 키 스토어를 삭제해도 연결된 클라우드HSM 클러스터에는 영향을 미치지 않습니다. 외부 키 스토어를 삭제해도 연결된 외부 키 스토어 프록시, 외부 키 관리자 또는 외부 키에는 영향을 미치지 않습니다.
NOTE: 사용자 지정 키 스토어를 삭제하려면 먼저 사용자 지정 KMS 키 스토어의 모든 키 삭제를 예약한 다음 해당 KMS 키가 삭제될 때까지 기다려야 합니다. 그런 다음 사용자 지정 키 스토어의 연결을 해제해야 합니다. 사용자 지정 KMS 키 스토어에서 키를 찾는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS 클라우드HSM 키 스토어 삭제(API)를 참조하세요.
delete-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0
이 명령은 출력을 반환하지 않습니다. 사용자 지정 키 스토어가 삭제되었는지 확인하려면
describe-custom-key-stores
명령을 사용합니다.AWS CloudHSM 키 스토어 삭제에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS CloudHSM 키 스토어 삭제를 참조하세요.
외부 키 스토어 삭제에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 외부 키 스토어 삭제를 참조하세요.
-
자세한 API 내용은 명령 참조DeleteCustomKeyStore
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 delete-imported-key-material
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키에서 가져온 키 구성 요소를 삭제하려면
다음
delete-imported-key-material
예제에서는 키로 가져온 KMS 키 구성 요소를 삭제합니다.aws kms delete-imported-key-material \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
이 명령은 출력을 생성하지 않습니다. 키 구성 요소가 삭제되었는지 확인하려면
describe-key
명령을 사용하여PendingImport
또는 의 키 상태를 찾습니다PendingDeletion
.자세한 내용은 Key AWS Management Service 개발자 안내서의 가져온 키 자료 삭제<https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-delete-key-material.html>를 참조하세요.
-
자세한 API 내용은 명령 참조DeleteImportedKeyMaterial
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 derive-shared-secret
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
공유 보안 암호를 파생하려면
다음
derive-shared-secret
예제에서는 키 계약 알고리즘을 사용하여 공유 보안 암호를 도출합니다.를 호출하려면
KeyUsage
값이 인 비대칭 NIST권장 타원 곡선(ECC) 또는 SM2 (중국 리전만 해당) KMS 키 페어KEY_AGREEMENT
를 사용해야 합니다 DeriveSharedSecret.aws kms derive-shared-secret \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --key-agreement-algorithmECDH
\ --public-key"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag"
출력:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", "KeyAgreementAlgorithm": "ECDH", "KeyOrigin": "AWS_KMS" }
자세한 내용은 키 관리 서비스 참조DeriveSharedSecret의 섹션을 참조하세요. AWS API
-
자세한 API 내용은 명령 참조DeriveSharedSecret
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-custom-key-stores
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: AWS CloudHSM 키 스토어에 대한 세부 정보를 가져오려면
다음
describe-custom-key-store
예제에서는 지정된 AWS CloudHSM 키 스토어에 대한 세부 정보를 표시합니다. 명령은 모든 유형의 사용자 지정 키 스토어에서 동일하지만 출력은 키 스토어 유형과 다르고 외부 키 스토어의 경우 연결 옵션과 다릅니다.기본적으로 이 명령은 계정 및 리전의 모든 사용자 지정 키 스토어에 대한 정보를 표시합니다. 특정 사용자 지정 키 스토어에 대한 정보를 표시하려면
custom-key-store-name
또는custom-key-store-id
파라미터를 사용합니다.aws kms describe-custom-key-stores \ --custom-key-store-name
ExampleCloudHSMKeyStore
이 명령의 출력에는 연결 상태()를 포함하여 AWS CloudHSM 키 스토어에 대한 유용한 세부 정보가 포함됩니다
ConnectionState
. 연결 상태가 인 경우 출력FAILED
에는 문제를 설명하는ConnectionErrorCode
필드가 포함됩니다.출력:
{ "CustomKeyStores": [ { "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionState": "CONNECTED", "CreationDate": "2022-04-05T14:04:55-07:00", "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleExternalKeyStore", "TrustAnchorCertificate": "<certificate appears here>" } ] }
자세한 내용은 Key Management Service 개발자 안내서의 AWS 클라우드HSM 키 스토어 보기를 참조하세요. AWS
예제 2: 퍼블릭 엔드포인트 연결이 있는 외부 키 스토어에 대한 세부 정보를 가져오려면
다음
describe-custom-key-store
예제에서는 지정된 외부 키 스토어에 대한 세부 정보를 표시합니다. 명령은 모든 유형의 사용자 지정 키 스토어에서 동일하지만 출력은 키 스토어 유형과 다르고 외부 키 스토어의 경우 연결 옵션과 다릅니다.기본적으로 이 명령은 계정 및 리전의 모든 사용자 지정 키 스토어에 대한 정보를 표시합니다. 특정 사용자 지정 키 스토어에 대한 정보를 표시하려면
custom-key-store-name
또는custom-key-store-id
파라미터를 사용합니다.aws kms describe-custom-key-stores \ --custom-key-store-id
cks-9876543210fedcba9
이 명령의 출력에는 연결 상태()를 포함하여 외부 키 스토어에 대한 유용한 세부 정보가 포함됩니다
ConnectionState
. 연결 상태가 인 경우 출력FAILED
에는 문제를 설명하는ConnectionErrorCode
필드가 포함됩니다.출력:
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXKS", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE12345670EXAMPLE", "Connectivity": "PUBLIC_ENDPOINT", "UriEndpoint": "https://myproxy.xks.example.com", "UriPath": "/example-prefix/kms/xks/v1" } } ] }
자세한 내용은 Key Management Service 개발자 안내서의 외부 키 스토어 보기를 참조하세요. AWS
예제 3: VPC 엔드포인트 서비스 연결이 있는 외부 키 스토어에 대한 세부 정보를 가져오려면
다음
describe-custom-key-store
예제에서는 지정된 외부 키 스토어에 대한 세부 정보를 표시합니다. 명령은 모든 유형의 사용자 지정 키 스토어에서 동일하지만 출력은 키 스토어 유형과 다르고 외부 키 스토어의 경우 연결 옵션과 다릅니다.기본적으로 이 명령은 계정 및 리전의 모든 사용자 지정 키 스토어에 대한 정보를 표시합니다. 특정 사용자 지정 키 스토어에 대한 정보를 표시하려면
custom-key-store-name
또는custom-key-store-id
파라미터를 사용합니다.aws kms describe-custom-key-stores \ --custom-key-store-id
cks-2234567890abcdef0
이 명령의 출력에는 연결 상태()를 포함하여 외부 키 스토어에 대한 유용한 세부 정보가 포함됩니다
ConnectionState
. 연결 상태가 인 경우 출력FAILED
에는 문제를 설명하는ConnectionErrorCode
필드가 포함됩니다.출력:
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-3234567890abcdef0", "CustomKeyStoreName": "ExampleVPCExternalKeyStore", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-22T07:48:55-07:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE12345670EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://myproxy-private.xks.example.com", "UriPath": "/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example1" } } ] }
자세한 내용은 Key Management Service 개발자 안내서의 외부 키 스토어 보기를 참조하세요. AWS
-
자세한 API 내용은 명령 참조DescribeCustomKeyStores
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-key
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: KMS 키에 대한 자세한 정보를 찾으려면
다음
describe-key
예제에서는 예제 계정 및 리전에서 Amazon S3의 AWS 관리형 키에 대한 자세한 정보를 가져옵니다. 이 명령을 사용하여 AWS 관리형 키 및 고객 관리형 키에 대한 세부 정보를 찾을 수 있습니다.KMS 키를 지정하려면
key-id
파라미터를 사용합니다. 이 예제에서는 별칭 이름 값을 사용하지만 이 명령ARN에서 키 ID, 키 ARN, 별칭 이름 또는 별칭을 사용할 수 있습니다.aws kms describe-key \ --key-id
alias/aws/s3
출력:
{ "KeyMetadata": { "AWSAccountId": "846764612917", "KeyId": "b8a9477d-836c-491f-857e-07937918959b", "Arn": "arn:aws:kms:us-west-2:846764612917:key/b8a9477d-836c-491f-857e-07937918959b", "CreationDate": 2017-06-30T21:44:32.140000+00:00, "Enabled": true, "Description": "Default KMS key that protects my S3 objects when no other key is defined", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "AWS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }
자세한 내용은 AWS Key Management Service 개발자 안내서의 키 보기를 참조하세요.
예제 2: RSA 비대칭 KMS 키에 대한 세부 정보를 가져오려면
다음
describe-key
예제에서는 서명 및 확인에 사용되는 비대칭 RSA KMS 키에 대한 자세한 정보를 가져옵니다.aws kms describe-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2019-12-02T19:47:14.861000+00:00", "CustomerMasterKeySpec": "RSA_2048", "Enabled": false, "Description": "", "KeyState": "Disabled", "Origin": "AWS_KMS", "MultiRegion": false, "KeyManager": "CUSTOMER", "KeySpec": "RSA_2048", "KeyUsage": "SIGN_VERIFY", "SigningAlgorithms": [ "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512" ] } }
예 3: 다중 리전 복제본 키에 대한 세부 정보를 가져오는 방법
다음
describe-key
예시에서는 다중 리전 복제본 키에 대한 메타데이터를 가져옵니다. 이 다중 리전 키는 대칭 암호화 키입니다. 모든 다중 리전 키에 대한describe-key
명령 출력은 프라이머리 키와 모든 해당 복제본에 대한 정보를 반환합니다.aws kms describe-key \ --key-id
arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
출력:
{ "KeyMetadata": { "MultiRegion": true, "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "CreationDate": "2021-06-28T21:09:16.114000+00:00", "Description": "", "Enabled": true, "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_KMS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "us-west-2" }, "ReplicaKeys": [ { "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "eu-west-1" }, { "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "ap-northeast-1" }, { "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "sa-east-1" } ] } } }
예제 4: HMAC KMS 키에 대한 세부 정보를 가져오려면
다음
describe-key
예제에서는 HMAC KMS 키에 대한 자세한 정보를 가져옵니다.aws kms describe-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "KeyMetadata": { "AWSAccountId": "123456789012", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2022-04-03T22:23:10.194000+00:00", "Enabled": true, "Description": "Test key", "KeyUsage": "GENERATE_VERIFY_MAC", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "HMAC_256", "MacAlgorithms": [ "HMAC_SHA_256" ], "MultiRegion": false } }
-
자세한 API 내용은 명령 참조DescribeKey
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 disable-key-rotation
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키의 자동 교체를 비활성화하려면
다음
disable-key-rotation
예제에서는 고객 관리형 KMS 키의 자동 교체를 비활성화합니다. 자동 교체를 다시 활성화하려면enable-key-rotation
명령을 사용합니다.aws kms disable-key-rotation \ --key-id
arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
이 명령은 출력을 생성하지 않습니다. KMS 키에 자동 교체가 비활성화되어 있는지 확인하려면
get-key-rotation-status
명령을 사용합니다.자세한 내용은 Key AWS Management Service 개발자 안내서의 키 교체를 참조하세요.
-
자세한 API 내용은 명령 참조DisableKeyRotation
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 disable-key
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키를 일시적으로 비활성화하려면
다음 예제에서는
disable-key
명령을 사용하여 고객 관리형 KMS 키를 비활성화합니다. KMS 키를 다시 활성화하려면enable-key
명령을 사용합니다.aws kms disable-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS Key Management Service 개발자 안내서의 키 활성화 및 비활성화를 참조하세요.
-
자세한 API 내용은 명령 참조DisableKey
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 disconnect-custom-key-store
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
사용자 지정 키 스토어 연결을 해제하려면
다음
disconnect-custom-key-store
예제에서는 사용자 지정 키 스토어를 AWS 클라우드HSM 클러스터에서 분리합니다. 문제를 해결하거나 설정을 업데이트하거나 키 스토어의 KMS 키가 암호화 작업에 사용되지 않도록 키 스토어의 연결을 해제할 수 있습니다.이 명령은 AWS CloudHSM 키 스토어 및 외부 키 스토어를 포함한 모든 사용자 지정 키 스토어에서 동일합니다.
이 명령을 실행하기 앞서 예제에 나온 사용자 지정 키 스토어 ID를 유효한 ID로 대체합니다.
$ aws kms disconnect-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0
이 명령은 출력을 생성하지 않습니다. 명령이 유효한지 확인하고
describe-custom-key-stores
명령을 사용합니다.AWS CloudHSM 키 스토어 연결 해제에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS CloudHSM 키 스토어 연결 및 연결 해제를 참조하세요.
외부 키 스토어 연결 해제에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 외부 키 스토어 연결 및 연결 해제를 참조하세요.
-
자세한 API 내용은 명령 참조DisconnectCustomKeyStore
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 enable-key-rotation
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키의 자동 교체를 활성화하려면
다음
enable-key-rotation
예제에서는 180일의 교체 기간으로 고객 관리형 KMS 키를 자동으로 교체할 수 있습니다. KMS 키는 이 명령이 완료된 날짜로부터 1년(약 365일) 동안 교체되며 그 이후에는 매년 교체됩니다.--key-id
파라미터는 KMS 키를 식별합니다. 이 예제에서는 키 ARN 값을 사용하지만 키 ID 또는 KMS 키ARN의 를 사용할 수 있습니다.--rotation-period-in-days
파라미터는 각 교체 날짜 사이의 일수를 지정합니다. 90~2,560일 사이의 값을 지정합니다. 값이 지정되지 않은 경우 기본값은 365일입니다.aws kms enable-key-rotation \ --key-id
arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
\ --rotation-period-in-days180
이 명령은 출력을 생성하지 않습니다. KMS 키가 활성화되어 있는지 확인하려면
get-key-rotation-status
명령을 사용합니다.자세한 내용은 Key Management Service 개발자 안내서의 키 교체를 참조하세요. AWS
-
자세한 API 내용은 명령 참조EnableKeyRotation
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 enable-key
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키를 활성화하려면
다음
enable-key
예시에서는 고객 관리형 키를 활성화합니다. 이 명령과 같은disable-key
명령을 사용하여 명령을 사용하여 일시적으로 비활성화한 KMS 키를 활성화할 수 있습니다. 삭제가 예약되고 삭제가 취소되었으므로 비활성화된 KMS 키를 활성화하는 데 사용할 수도 있습니다.KMS 키를 지정하려면
key-id
파라미터를 사용합니다. 이 예제에서는 키 ID 값을 사용하지만 이 명령에서 키 ID 또는 키 ARN 값을 사용할 수 있습니다.이 명령을 실행하기 전에 예시에 나온 키 ID를 유효한 키 핸들로 바꾸세요.
aws kms enable-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
이 명령은 출력을 생성하지 않습니다. KMS 키가 활성화되었는지 확인하려면
describe-key
명령을 사용합니다.describe-key
출력의KeyState
및Enabled
필드 값을 확인하세요.자세한 내용은 AWS Key Management Service 개발자 안내서의 키 활성화 및 비활성화를 참조하세요.
-
자세한 API 내용은 명령 참조EnableKey
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 encrypt
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: Linux 또는 macOS에서 파일 콘텐츠를 암호화하는 방법
다음
encrypt
명령은 를 사용하여 데이터를 암호화하는 권장 방법을 보여줍니다 AWS CLI.aws kms encrypt \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
|
base64
\ --decode>
ExampleEncryptedFile
이 명령은 여러 가지 작업을 수행합니다.
--plaintext
파라미터를 사용하여 암호화할 데이터를 표시합니다. 이 파라미터 값은 base64로 인코딩되어야 합니다.plaintext
파라미터의 값은 base64로 인코딩되거나, 파일에서 바이너리 데이터를 읽도록 에 AWS CLI 지시하는fileb://
접두사를 사용해야 합니다. 파일이 현재 디렉터리에 없는 경우 파일의 전체 경로를 입력합니다. 예:fileb:///var/tmp/ExamplePlaintextFile
또는fileb://C:\Temp\ExamplePlaintextFile
. 파일에서 파라미터 값을 읽 AWS CLI는 방법에 대한 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서의 파일에서 파라미터 로드 및 AWS 명령줄 도구 블로그의 로컬 파일 파라미터 모범 사례를참조하세요. --output
및--query
파라미터를 사용하여 명령의 출력을 제어합니다. 이러한 파라미터는 암호화된 데이터를 추출합니다. 는 암호 텍스트 를 호출했습니다. 명령의 출력에서.출력 제어에 대한 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서의 명령 출력 제어를 참조하세요.base64
유틸리티를 사용하여 추출된 출력을 바이너리 데이터로 디코딩합니다. 성공적인encrypt
명령으로 반환되는 암호 텍스트는 base64 인코딩 텍스트입니다. 를 AWS CLI 사용하여 복호화하려면 먼저 이 텍스트를 복호화해야 합니다. 이진 암호 텍스트를 파일에 저장합니다. 명령의 마지막 부분(> ExampleEncryptedFile
)은 이진 암호 텍스트를 파일에 저장하여 복호화가 더 쉬워지도록 합니다. 를 AWS CLI 사용하여 데이터를 복호화하는 예제 명령은 복호화 예제를 참조하세요.예제 2: AWS CLI를 사용하여 Windows에서 데이터 암호화
이 예시는
base64
대신certutil
도구를 사용한다는 점을 제외하면 이전 예와 동일합니다. 이 절차에는 다음 예시와 같이 두 개의 명령이 필요합니다.aws kms encrypt \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
>
C:\Temp\ExampleEncryptedFile.base64certutil
-decode
C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFile예제 3: 비대칭 KMS 키로 암호화
다음
encrypt
명령은 비대칭 KMS 키로 일반 텍스트를 암호화하는 방법을 보여줍니다.--encryption-algorithm
파라미터가 필요합니다. 모든encrypt
CLI 명령과 마찬가지로plaintext
파라미터는 base64로 인코딩되거나 에 AWS CLI 파일에서 바이너리 데이터를 읽도록 지시하는fileb://
접두사를 사용해야 합니다.aws kms encrypt \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --encryption-algorithmRSAES_OAEP_SHA_256
\ --plaintextfileb://ExamplePlaintextFile
\ --outputtext
\ --queryCiphertextBlob
|
base64
\ --decode>
ExampleEncryptedFile
이 명령은 출력을 생성하지 않습니다.
-
API 자세한 내용은 AWS CLI 명령 참조의 암호화
를 참조하세요.
-
다음 코드 예시에서는 generate-data-key-pair-without-plaintext
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
ECC NIST P384 비대칭 데이터 키 페어를 생성하려면
다음
generate-data-key-pair-without-plaintext
예제에서는 외부에서 사용할 ECC NIST P384 키 페어를 요청합니다 AWS.명령은 일반 텍스트 퍼블릭 키와 지정된 키로 암호화된 프라이빗 KMS 키의 사본을 반환합니다. 일반 텍스트 프라이빗 키는 반환되지 않습니다. 암호화된 프라이빗 키를 암호화된 데이터와 함께 안전하게 저장하고 를 호출 AWS KMS하여 프라이빗 키를 사용해야 할 때 복호화할 수 있습니다.
ECC NIST P384 비대칭 데이터 키 페어를 요청하려면 값이 인
key-pair-spec
파라미터를 사용합니다ECC_NIST_P384
.지정하는 KMS 키는 대칭 암호화 KMS 키, 즉
KeySpec
값이 인 KMS 키여야 합니다SYMMETRIC_DEFAULT
.NOTE: 이 예제의 출력에 있는 값은 표시를 위해 잘립니다.
aws kms generate-data-key-pair-without-plaintext \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --key-pair-specECC_NIST_P384
출력:
{ "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyPairSpec": "ECC_NIST_P384" }
PublicKey
및 는 base64 인코딩 형식으로 반환PrivateKeyCiphertextBlob
됩니다.자세한 내용은 Key Management Service 개발자 안내서의 데이터 키 페어AWS 를 참조하세요.
-
자세한 API 내용은 명령 참조GenerateDataKeyPairWithoutPlaintext
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 generate-data-key-pair
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
2048비트 RSA 비대칭 데이터 키 페어를 생성하려면
다음
generate-data-key-pair
예제에서는 외부에서 사용할 2048비트 RSA 비대칭 데이터 키 페어를 요청합니다 AWS. 명령은 즉시 사용 및 삭제할 수 있도록 일반 텍스트 퍼블릭 키와 일반 텍스트 프라이빗 키 및 지정된 키로 암호화된 프라이빗 KMS 키의 사본을 반환합니다. 암호화된 프라이빗 키를 암호화된 데이터와 함께 안전하게 저장할 수 있습니다.2048비트 RSA 비대칭 데이터 키 페어를 요청하려면 값이 인
key-pair-spec
파라미터를 사용합니다RSA_2048
.지정하는 KMS 키는 대칭 암호화 KMS 키, 즉
KeySpec
값이 인 KMS 키여야 합니다SYMMETRIC_DEFAULT
.NOTE: 이 예제의 출력에 있는 값은 표시를 위해 잘립니다.
aws kms generate-data-key-pair \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --key-pair-specRSA_2048
출력:
{ "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", "PrivateKeyPlaintext": "MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDcDd4YzI+u9Kfv4t2UkTWhShBXkekS4cBVt07I0P42ZgMf+YvU5IgS4ut...", "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyPairSpec": "RSA_2048" }
PublicKey
,PrivateKeyPlaintext
및 는 base64 인코딩 형식으로 반환PrivateKeyCiphertextBlob
됩니다.자세한 내용은 Key Management Service 개발자 안내서의 데이터 키 페어AWS 를 참조하세요.
-
자세한 API 내용은 명령 참조GenerateDataKeyPair
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 generate-data-key-without-plaintext
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
일반 텍스트 키 없이 256비트 대칭 데이터 키를 생성하는 방법
다음
generate-data-key-without-plaintext
예시에서는 AWS외부에서 사용할 256비트 대칭 데이터 키의 암호화된 사본을 요청합니다. 사용할 준비가 되면 를 호출 AWS KMS하여 데이터 키를 복호화할 수 있습니다.256비트 데이터 키를 요청하려면 값이
AES_256
인key-spec
파라미터를 사용하세요. 128비트 데이터 키를 요청하려면 값이AES_128
인key-spec
파라미터를 사용하세요. 다른 모든 데이터 키 길이에는number-of-bytes
파라미터를 사용하세요.지정하는 KMS 키는 대칭 암호화 KMS 키, 즉 키 사양 값이 SYMMETRIC_인 KMS 키여야 합니다DEFAULT.
aws kms generate-data-key-without-plaintext \ --key-id
"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
\ --key-specAES_256
출력:
{ "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
CiphertextBlob
(암호화된 데이터 키)은 base64로 인코딩된 형식으로 반환됩니다.자세한 내용은 AWS Key Management Service 개발자 안내서의 데이터 키를 참조하세요.
-
자세한 API 내용은 명령 참조GenerateDataKeyWithoutPlaintext
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 generate-data-key
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 256비트 대칭 데이터 키를 생성하는 방법
다음
generate-data-key
예제에서는 외부에서 사용할 256비트 대칭 데이터 키를 요청합니다 AWS. 명령은 즉시 사용 및 삭제할 수 있는 일반 텍스트 데이터 키와 지정된 키로 암호화된 해당 데이터 KMS 키의 사본을 반환합니다. 암호화한 데이터 키를 암호화한 데이터와 함께 안전하게 저장할 수 있습니다.256비트 데이터 키를 요청하려면 값이
AES_256
인key-spec
파라미터를 사용하세요. 128비트 데이터 키를 요청하려면 값이AES_128
인key-spec
파라미터를 사용하세요. 다른 모든 데이터 키 길이에는number-of-bytes
파라미터를 사용하세요.지정하는 KMS 키는 대칭 암호화 KMS 키, 즉 키 사양 값이 SYMMETRIC_인 KMS 키여야 합니다DEFAULT.
aws kms generate-data-key \ --key-id
alias/ExampleAlias
\ --key-specAES_256
출력:
{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }
Plaintext
(일반 텍스트 데이터 키) 및CiphertextBlob
(암호화된 데이터 키)은 base64로 인코딩된 형식으로 반환됩니다.자세한 내용은 AWS Key Management Service 개발자 안내서의 데이터 키 <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys를 참조하세요.
예 2: 512비트 대칭 데이터 키를 생성하는 방법
다음
generate-data-key
예시에서는 암호화 및 복호화를 위한 512비트 대칭 데이터 키를 요청합니다. 명령은 즉시 사용 및 삭제할 수 있는 일반 텍스트 데이터 키와 지정된 키로 암호화된 해당 데이터 KMS 키의 사본을 반환합니다. 암호화한 데이터 키를 암호화한 데이터와 함께 안전하게 저장할 수 있습니다.128비트 또는 256비트가 아닌 키 길이를 요청하려면
number-of-bytes
파라미터를 사용하세요. 512비트 데이터 키를 요청하기 위해 다음 예시에서는 값이 64(바이트)인number-of-bytes
파라미터를 사용합니다.지정하는 KMS 키는 대칭 암호화 KMS 키, 즉 키 사양 값이 SYMMETRIC_인 KMS 키여야 합니다DEFAULT.
NOTE: 이 예제의 출력에 있는 값은 표시를 위해 잘립니다.
aws kms generate-data-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --number-of-bytes64
출력:
{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
Plaintext
(일반 텍스트 데이터 키) 및CiphertextBlob
(암호화된 데이터 키)은 base64로 인코딩된 형식으로 반환됩니다.자세한 내용은 AWS Key Management Service 개발자 안내서의 데이터 키 <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys를 참조하세요.
-
자세한 API 내용은 명령 참조GenerateDataKey
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 generate-random
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 256비트 랜덤 바이트 문자열 생성(Linux 또는 macOs)
다음
generate-random
예시에서는 256비트(32바이트), base64로 인코딩된 무작위 바이트 문자열을 생성합니다. 이 예시에서는 바이트 문자열을 디코딩하여 무작위 파일에 저장합니다.이 명령을 실행할 때는
number-of-bytes
파라미터를 사용하여 무작위 값의 길이를 바이트 단위로 지정해야 합니다.이 명령을 실행할 때는 KMS 키를 지정하지 않습니다. 임의 바이트 문자열은 KMS 키와 관련이 없습니다.
기본적으로 AWS KMS는 무작위 번호를 생성합니다. 하지만 사용자 지정 키 스토어<https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html>를 지정하면 사용자 지정 키 스토어와 연결된 AWS 클라우드HSM 클러스터에 무작위 바이트 문자열이 생성됩니다.
이 예시에서는 다음 파라미터와 값을 사용합니다.
값이 인 필수
--number-of-bytes
파라미터를 사용하여 32바이트(256비트)를32
요청합니다. string.It 값이 인--output
파라미터를 사용하여 가 AWS CLI 출력을 텍스트로 반환하도록text
지시합니다. 대신 를 사용합니다JSON.--query parameter
를 사용하여base64
response.It 파이프( | )에서Plaintext
유틸리티에 대한 명령의 출력을 추출합니다. 는 추출된 output.It 리디렉션 연산자( > )를 사용하여 디코딩된 바이트 문자열을ExampleRandom
file.It 리디렉션 연산자( > )를 사용하여 바이너리 암호 텍스트를 파일에 저장합니다.aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext | base64 --decode > ExampleRandom
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 키 관리 서비스 참조GenerateRandom의 섹션을 참조하세요. AWS API
예 2: 256비트 무작위 수를 생성하는 방법(Windows 명령 프롬프트)
다음 예시에서는
generate-random
명령을 사용하여 256비트(32바이트), base64로 인코딩된 무작위 바이트 문자열을 생성합니다. 이 예시에서는 바이트 문자열을 디코딩하여 무작위 파일에 저장합니다. 이 예시는 Windows의certutil
유틸리티를 사용하여 무작위 바이트 문자열을 base64로 디코딩한 다음 파일에 저장한다는 점을 제외하면 이전 예와 동일합니다.먼저 base64로 인코딩된 무작위 바이트 문자열을 생성하여 임시 파일
ExampleRandom.base64
에 저장합니다.aws kms generate-random \ --number-of-bytes
32
\ --outputtext
\ --queryPlaintext
>
ExampleRandom.base64
generate-random
명령의 출력이 파일에 저장되기 때문에 이 예시에서는 출력이 생성되지 않습니다.이제
certutil -decode
명령을 사용하여ExampleRandom.base64
파일에서 base64로 인코딩된 바이트 문자열을 디코딩합니다. 그런 다음 디코딩된 바이트 문자열을ExampleRandom
파일에 저장합니다.certutil -decode ExampleRandom.base64 ExampleRandom
출력:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.
자세한 내용은 키 관리 서비스 참조GenerateRandom의 섹션을 참조하세요. AWS API
-
자세한 API 내용은 명령 참조GenerateRandom
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 get-key-policy
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
한 키에서 다른 KMS 키로 KMS 키 정책을 복사하려면
다음
get-key-policy
예제는 한 키에서 KMS 키 정책을 가져와 텍스트 파일에 저장합니다. 그런 다음 텍스트 파일을 정책 입력으로 사용하여 다른 KMS 키의 정책을 바꿉니다.의
--policy
파라미터에는 문자열이put-key-policy
필요하므로--output text
옵션을 사용하여 출력을 대신 텍스트 문자열로 반환해야 합니다JSON.aws kms get-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --queryPolicy
\ --outputtext
>
policy.txt
aws
kms
put-key-policy
\ --policy-namedefault
\ --key-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --policyfile://policy.txt
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 참조PutKeyPolicy의 섹션을 참조하세요. AWS KMS API
-
자세한 API 내용은 명령 참조GetKeyPolicy
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 get-key-rotation-status
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키의 교체 상태를 검색합니다.
다음
get-key-rotation-status
예제에서는 자동 교체 활성화 여부, 교체 기간 및 다음 예정된 교체 날짜를 포함하여 지정된 KMS 키의 교체 상태에 대한 정보를 반환합니다. 고객 관리형 KMS 키 및 AWS 관리형 KMS 키에서 이 명령을 사용할 수 있습니다. 그러나 모든 AWS 관리형 KMS 키는 매년 자동으로 교체됩니다.aws kms get-key-rotation-status \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyRotationEnabled": true, "NextRotationDate": "2024-02-14T18:14:33.587000+00:00", "RotationPeriodInDays": 365 }
자세한 내용은 Key AWS Management Service 개발자 안내서의 키 교체를 참조하세요.
-
자세한 API 내용은 명령 참조GetKeyRotationStatus
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 get-parameters-for-import
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
키 구성 요소를 KMS 키로 가져오는 데 필요한 항목을 가져오려면
다음
get-parameters-for-import
예제에서는 키 구성 요소를 키로 가져오는 데 필요한 퍼블릭 키와 가져오기 토큰을 가져옵니다KMS.import-key-material
명령을 사용할 때는 동일한get-parameters-for-import
명령으로 반환된 퍼블릭 키로 암호화된 가져오기 토큰과 키 구성 요소를 사용해야 합니다. 또한 이 명령에서 지정하는 래핑 알고리즘은 퍼블릭 키로 키 구성 요소를 암호화하는 데 사용하는 알고리즘이어야 합니다.KMS 키를 지정하려면
key-id
파라미터를 사용합니다. 이 예제에서는 키 ID를 사용하지만 이 명령ARN에서 키 ID 또는 키를 사용할 수 있습니다.aws kms get-parameters-for-import \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --wrapping-algorithmRSAES_OAEP_SHA_256
\ --wrapping-key-specRSA_2048
출력:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "PublicKey": "<public key base64 encoded data>", "ImportToken": "<import token base64 encoded data>", "ParametersValidTo": 1593893322.32 }
자세한 내용은 AWS Key Management Service 개발자 안내서의 퍼블릭 키 다운로드 및 토큰 가져오기를 참조하세요.
-
자세한 API 내용은 명령 참조GetParametersForImport
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 get-public-key
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 비대칭 키의 퍼블릭 KMS 키를 다운로드하려면
다음
get-public-key
예제에서는 비대칭 키의 퍼블릭 KMS 키를 다운로드합니다.퍼블릭 키를 반환하는 것 외에도 출력에는 키 사용 및 지원되는 암호화 알고리즘을 AWS KMS포함하여 외부에서 퍼블릭 키를 안전하게 사용하는 데 필요한 정보가 포함됩니다.
aws kms get-public-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "PublicKey": "jANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl5epvg1/QtJhxSi2g9SDEVg8QV/...", "CustomerMasterKeySpec": "RSA_4096", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ] }
의 비대칭 KMS 키 사용에 대한 자세한 AWS KMS내용은 AWS 키 관리 서비스 API 참조의 대칭 및 비대칭 키 사용을 참조하세요.
예제 2: 퍼블릭 키를 DER 형식으로 변환(Linux 및 macOS)
다음
get-public-key
예제에서는 비대칭 키의 퍼블릭 KMS 키를 다운로드하여 DER 파일에 저장합니다.에서
get-public-key
명령을 사용하면 Base64-encoded DER인코딩 인 인코딩된 X.509 퍼블릭 키를 AWS CLI반환합니다. 이 예제에서는PublicKey
속성 값을 텍스트로 가져옵니다. Base64-decodesPublicKey
하고public_key.der
파일에 저장합니다.output
파라미터는 출력을 대신 텍스트로 반환합니다JSON.--query
파라미터는 외부에서 퍼블릭 키를 안전하게 사용하는 데 필요한PublicKey
속성이 아닌 속성만 가져옵니다 AWS KMS.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.
aws kms get-public-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
\ --queryPublicKey
|
base64
--decode>
public_key.der
이 명령은 출력을 생성하지 않습니다.
의 비대칭 KMS 키 사용에 대한 자세한 AWS KMS내용은 AWS 키 관리 서비스 API 참조의 대칭 및 비대칭 키 사용을 참조하세요.
-
자세한 API 내용은 명령 참조GetPublicKey
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 import-key-material
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
키 구성 요소를 KMS 키로 가져오려면
다음
import-key-material
예제에서는 키 구성 요소를 키 구성 요소 없이 생성된 KMS 키에 업로드합니다. 키의 KMS 키 상태는 여야 합니다PendingImport
.이 명령은
get-parameters-for-import
명령이 반환한 퍼블릭 키로 암호화된 키 구성 요소를 사용합니다. 또한 동일한get-parameters-for-import
명령의 가져오기 토큰을 사용합니다.expiration-model
파라미터는 키 구성 요소가valid-to
파라미터에 지정된 날짜 및 시간에 자동으로 만료됨을 나타냅니다. 키 구성 요소가 만료되면 AWS KMS가 키 구성 요소를 삭제Pending import
하고 키의 KMS 키 상태가 로 변경되며 KMS 키를 사용할 수 없게 됩니다. KMS 키를 복원하려면 동일한 키 구성 요소를 다시 가져와야 합니다. 다른 키 구성 요소를 사용하려면 새 KMS 키를 생성해야 합니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID 또는 키로 바ARN꿉니다.
aws kms import-key-material \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --encrypted-key-materialfileb://EncryptedKeyMaterial.bin
\ --import-tokenfileb://ImportToken.bin
\ --expiration-modelKEY_MATERIAL_EXPIRES
\ --valid-to2021-09-21T19:00:00Z
이 명령은 출력을 생성하지 않습니다.
키 구성 요소 가져오기에 대한 자세한 내용은 키 AWS 관리 서비스 개발자 안내서의 키 구성 요소 가져오기를 참조하세요.
-
자세한 API 내용은 명령 참조ImportKeyMaterial
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-aliases
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: AWS 계정 및 리전의 모든 별칭을 나열하려면
다음 예제에서는
list-aliases
명령을 사용하여 AWS 계정의 기본 리전에 있는 모든 별칭을 나열합니다. 출력에는 AWS 관리형 KMS 키 및 고객 관리형 KMS 키와 연결된 별칭이 포함됩니다.aws kms list-aliases
출력:
{ "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/testKey", "AliasName": "alias/testKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/FinanceDept", "AliasName": "alias/FinanceDept", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "AliasName": "alias/aws/dynamodb", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs", "AliasName": "alias/aws/ebs", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef" }, ... ] }
예제 2: 특정 KMS 키의 모든 별칭을 나열하려면
다음 예제에서는
list-aliases
명령과 해당key-id
파라미터를 사용하여 특정 KMS 키와 연결된 모든 별칭을 나열합니다.각 별칭은 하나의 KMS 키에만 연결되지만 KMS 키에는 여러 개의 별칭이 있을 수 있습니다. 콘솔에는 각 KMS 키에 AWS KMS 대해 하나의 별칭만 나열되므로 이 명령은 매우 유용합니다. KMS 키의 모든 별칭을 찾으려면
list-aliases
명령을 사용해야 합니다.이 예제에서는
--key-id
파라미터에 대한 KMS 키의 키 ID를 사용하지만 이 명령ARN에서 키 ID, 키 ARN, 별칭 이름 또는 별칭을 사용할 수 있습니다.aws kms list-aliases --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "Aliases": [ { "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/oregon-test-key", "AliasName": "alias/oregon-test-key" }, { "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project121-test", "AliasName": "alias/project121-test" } ] }
자세한 내용은 AWS Key Management Service 개발자 안내서의 별칭으로 작업을 참조하세요.
-
자세한 API 내용은 명령 참조ListAliases
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-grants
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
키에서 권한 부여를 AWS KMS 보려면
다음
list-grants
예제에서는 계정의 Amazon DynamoDB에 지정된 AWS 관리형 KMS 키에 대한 모든 권한을 표시합니다. 이 권한 부여를 통해 DynamoDB는 사용자를 대신하여 KMS 키를 사용하여 디스크에 쓰기 전에 DynamoDB 테이블을 암호화할 수 있습니다. 이 명령과 같은 명령을 사용하여 AWS 계정 및 리전의 AWS 관리형 KMS 키 및 고객 관리형 KMS 키에 대한 권한 부여를 볼 수 있습니다.이 명령은 키 ID가 있는
key-id
파라미터를 사용하여 KMS 키를 식별합니다. 키 ID 또는 키를 사용하여 KMS 키를 ARN 식별할 수 있습니다. ARN AWS 관리형 키의 KMS 키 ID 또는 키를 가져오려면list-keys
또는list-aliases
명령을 사용합니다.aws kms list-grants \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력에 따르면 권한 부여는 암호화 작업에 KMS 키를 사용할 수 있는 권한을 Amazon DynamoDB에 부여하고 KMS 키에 대한 세부 정보를 보고(
DescribeKey
) 권한 부여를 사용 중지할 수 있는 권한을 Amazon DynamoDB에 부여합니다(RetireGrant
).EncryptionContextSubset
제약 조건은 이러한 권한을 지정된 암호화 컨텍스트 페어를 포함하는 요청으로 제한합니다. 따라서 권한 부여의 권한은 지정된 계정 및 DynamoDB 테이블에만 유효합니다.{ "Grants": [ { "Constraints": { "EncryptionContextSubset": { "aws:dynamodb:subscriberId": "123456789012", "aws:dynamodb:tableName": "Services" } }, "IssuingAccount": "arn:aws:iam::123456789012:root", "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a", "Operations": [ "Decrypt", "Encrypt", "GenerateDataKey", "ReEncryptFrom", "ReEncryptTo", "RetireGrant", "DescribeKey" ], "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59", "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com", "CreationDate": "2021-05-13T18:32:45.144000+00:00" } ] }
자세한 내용은 AWS Key Management Service 개발자 안내서의 에서 권한 부여 AWS KMS를 참조하세요.
-
자세한 API 내용은 명령 참조ListGrants
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-key-policies
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키의 키 정책 이름을 가져오려면
다음
list-key-policies
예시에서는 예시 계정 및 리전의 고객 관리형 키에 대한 키 정책 이름을 가져옵니다. 이 명령을 사용하여 AWS 관리형 키 및 고객 관리형 키에 대한 키 정책의 이름을 찾을 수 있습니다.유효한 키 정책 이름은
default
뿐이므로 이 명령은 유용하지 않습니다.KMS 키를 지정하려면
key-id
파라미터를 사용합니다. 이 예제에서는 키 ID 값을 사용하지만 이 명령ARN에서 키 ID 또는 키를 사용할 수 있습니다.aws kms list-key-policies \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "PolicyNames": [ "default" ] }
키 정책에 대한 AWS KMS 자세한 내용은 키 AWS 관리 서비스 개발자 안내서의 에서 키 정책 사용을 AWS KMS 참조하세요.
-
자세한 API 내용은 명령 참조ListKeyPolicies
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-key-rotations
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
완료된 모든 키 구성 요소 교체에 대한 정보를 검색하려면
다음
list-key-rotations
예제에서는 지정된 키에 대해 완료된 모든 KMS 키 구성 요소 교체에 대한 정보를 나열합니다.aws kms list-key-rotations \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "Rotations": [ { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "RotationDate": "2024-03-02T10:11:36.564000+00:00", "RotationType": "AUTOMATIC" }, { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "RotationDate": "2024-04-05T15:14:47.757000+00:00", "RotationType": "ON_DEMAND" } ], "Truncated": false }
자세한 내용은 Key Management Service 개발자 안내서의 키 교체를 참조하세요. AWS
-
자세한 API 내용은 명령 참조ListKeyRotations
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-keys
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
계정 및 리전에서 KMS 키를 가져오려면
다음
list-keys
예제에서는 계정 및 리전의 KMS 키를 가져옵니다. 이 명령은 AWS 관리형 키와 고객 관리형 키를 모두 반환합니다.aws kms list-keys
출력:
{ "Keys": [ { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } ] }
자세한 내용은 AWS Key Management Service 개발자 안내서의 키 보기를 참조하세요.
-
자세한 API 내용은 명령 참조ListKeys
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-resource-tags
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키의 태그를 가져오려면
다음
list-resource-tags
예제에서는 KMS 키에 대한 태그를 가져옵니다. KMS 키에 리소스 태그를 추가하거나 교체하려면tag-resource
명령을 사용합니다. 출력에 따르면 이 KMS 키에는 두 개의 리소스 태그가 있으며 각 태그에는 키와 값이 있습니다.KMS 키를 지정하려면
key-id
파라미터를 사용합니다. 이 예제에서는 키 ID 값을 사용하지만 이 명령ARN에서 키 ID 또는 키를 사용할 수 있습니다.aws kms list-resource-tags \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "Tags": [ { "TagKey": "Dept", "TagValue": "IT" }, { "TagKey": "Purpose", "TagValue": "Test" } ], "Truncated": false }
에서 태그를 사용하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 태그 지정을 AWS KMS참조하세요.
-
자세한 API 내용은 명령 참조ListResourceTags
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-retirable-grants
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
보안 주체가 사용할 수 있는 권한 부여를 보려면
다음
list-retirable-grants
예제에서는ExampleAdmin
사용자가 AWS 계정 및 리전의 KMS 키에서 사용 중지할 수 있는 모든 권한을 표시합니다. 이 명령과 같은 명령을 사용하여 계정 보안 주체가 AWS 계정 및 리전의 KMS 키에서 사용 중지할 수 있는 권한을 볼 수 있습니다.필수
retiring-principal
파라미터의 값은 계정, 사용자 또는 역할의 Amazon 리소스 이름(ARN)이어야 합니다.서비스가 사용 중지 보안 주체일 수 있더라도 이 명령
retiring-principal
에서 의 값에 대한 서비스를 지정할 수 없습니다. 특정 서비스가 사용 중지 보안 주체인 권한을 찾으려면list-grants
명령을 사용합니다.출력에 따르면
ExampleAdmin
사용자는 계정과 리전의 서로 다른 두 KMS 키에 대한 권한 부여를 중지할 수 있는 권한이 있습니다. 사용 중지된 보안 주체 외에도 계정은 계정의 모든 권한 부여를 사용 중지할 수 있는 권한이 있습니다.aws kms list-retirable-grants \ --retiring-principal
arn:aws:iam::111122223333:user/ExampleAdmin
출력:
{ "Grants": [ { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "GrantId": "156b69c63cb154aa21f59929ff19760717be8d9d82b99df53e18b94a15a5e88e", "Name": "", "CreationDate": 2021-01-14T20:17:36.419000+00:00, "GranteePrincipal": "arn:aws:iam::111122223333:user/ExampleUser", "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Encrypt" ], "Constraints": { "EncryptionContextSubset": { "Department": "IT" } } }, { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "GrantId": "8c94d1f12f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "Name": "", "CreationDate": "2021-02-02T19:49:49.638000+00:00", "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole", "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Decrypt" ], "Constraints": { "EncryptionContextSubset": { "Department": "IT" } } } ], "Truncated": false }
자세한 내용은 AWS 키 관리 서비스 개발자 안내서의 에서 권한 부여 AWS KMS를 참조하세요.
-
자세한 API 내용은 명령 참조ListRetirableGrants
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 put-key-policy
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
키에 대한 KMS 키 정책을 변경하려면
다음
put-key-policy
예시에서는 고객 관리형 키의 키 정책을 변경합니다.시작하려면 키 정책을 생성하고 로컬 JSON 파일에 저장합니다. 이 예시에서 파일은
key_policy.json
입니다. 키 정책을policy
파라미터의 문자열 값으로 지정할 수도 있습니다.이 키 정책의 첫 번째 문은 AWS 계정에 IAM 정책을 사용하여 KMS 키에 대한 액세스를 제어할 수 있는 권한을 부여합니다. 두 번째 문은
test-user
사용자에게 KMS 키에서describe-key
및list-keys
명령을 실행할 수 있는 권한을 부여합니다.key_policy.json
의 콘텐츠:{ "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:DescribeKey", "kms:ListKeys" ], "Resource" : "*" } ] }
KMS 키를 식별하기 위해 이 예제에서는 키 ID를 사용하지만 키 를 사용할 수도 있습니다ARN. 키 정책을 지정하기 위해 이 명령은
policy
파라미터를 사용합니다. 정책이 파일에 있음을 나타내기 위해 필수file://
접두사를 사용합니다. 이 접두사는 지원되는 모든 운영 체제에서 파일을 식별하는 데 필요합니다. 마지막으로, 이 명령은 값이default
인policy-name
파라미터를 사용합니다. 정책 이름이 지정되지 않은 경우 기본값은 입니다default
. 유일한 유효 값은default
입니다.aws kms put-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --policyfile://key_policy.json
이 명령은 출력을 생성하지 않습니다. 명령이 유효한지 확인하려면
get-key-policy
명령을 사용하세요. 다음 예제 명령은 동일한 키에 대한 KMS 키 정책을 가져옵니다. 값이text
인output
파라미터는 읽기 쉬운 텍스트 형식을 반환합니다.aws kms get-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
출력:
{ "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:Describe", "kms:List" ], "Resource" : "*" } ] }
자세한 내용은 AWS Key Management Service 개발자 안내서의 키 정책 변경을 참조하세요.
-
자세한 API 내용은 명령 참조PutKeyPolicy
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 re-encrypt
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 다른 대칭 KMS 키(Linux 및 macOS )로 암호화된 메시지를 다시 암호화하려면
다음
re-encrypt
명령 예제는 를 사용하여 데이터를 다시 암호화하는 권장 방법을 보여줍니다 AWS CLI.file.In
--ciphertext-blob
파라미터 값을 암호 텍스트에 입력하고fileb://
접두사를 사용합니다. 접두사는 CLI에 바이너리 파일에서 데이터를 읽도록 지시합니다. 파일이 현재 디렉터리에 없는 경우 파일의 전체 경로를 입력합니다. 파일에서 파라미터 값을 읽 AWS CLI는 방법에 대한 자세한 내용은 AWS Command Line Tool Blog의 Command Line Interface 사용 설명서 및 로컬 파일 파라미터 모범 사례<https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/>의 파일 <https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html>에서 파라미터 AWS CLI로드를 참조하세요. 암호 텍스트를 복호화하는 소스 KMS 키를 지정하세요. 대칭 암호화 KMS 키를 사용하여 복호화할 때는--source-key-id
파라미터가 필요하지 않습니다. AWS KMS 는 암호 텍스트 블롭의 메타데이터에서 데이터를 암호화하는 데 사용된 KMS 키를 가져올 수 있습니다. AWS 하지만 사용하는 KMS 키를 지정하는 것이 항상 모범 사례입니다. 이 방법을 사용하면 의도한 KMS 키를 사용할 수 있으며 신뢰할 수 없는 KMS 키를 사용하여 암호 텍스트를 실수로 복호화하는 것을 방지할 수 있습니다. 데이터를 다시 암호화하는 대상 KMS 키를 지정합니다.--destination-key-id
파라미터는 항상 필요합니다. 이 예제에서는 키 를 사용하지ARN만 유효한 키 식별자를 사용할 수 있습니다. 일반 텍스트 출력을 텍스트 값으로 요청합니다.--query
파라미터는 출력에서Plaintext
필드 값만 가져오CLI도록 에 지시합니다.--output
파라미터는 출력을 텍스트로 반환합니다. 일반 텍스트를 Base64로 디코딩하여 파일에 저장합니다. 다음 예시에서는Plaintext
파라미터 값을 Base64 유틸리티에 파이프(|)로 구분하며 유틸리티가 이를 디코딩합니다. 그런 다음 디코딩된 출력을ExamplePlaintext
파일로 리디렉션(>)합니다.이 명령을 실행하기 전에 예제 키를 AWS 계정의 유효한 키 식별자IDs로 바꿉니다.
aws kms re-encrypt \ --ciphertext-blob
fileb://ExampleEncryptedFile
\ --source-key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --destination-key-id0987dcba-09fe-87dc-65ba-ab0987654321
\ --queryCiphertextBlob
\ --outputtext
|
base64
--decode>
ExampleReEncryptedFile
이 명령은 출력을 생성하지 않습니다.
re-encrypt
명령의 출력은 base64로 디코딩되어 파일에 저장됩니다.자세한 내용은 AWS Key Management Service API 참조의 ReEncrypt <https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html을 참조하세요.
예제 2: 다른 대칭 KMS 키(Windows 명령 프롬프트)로 암호화된 메시지를 다시 암호화하려면
다음
re-encrypt
명령 예시는certutil
유틸리티를 사용하여 일반 텍스트 데이터를 base64로 디코딩한다는 점을 제외하면 이전 예시와 동일합니다. 이 프로시저에는 다음 예시와 같이 두 개의 명령이 필요합니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.
aws kms re-encrypt
^
--ciphertext-blobfileb://ExampleEncryptedFile
^
--source-key-id1234abcd-12ab-34cd-56ef-1234567890ab
^
--destination-key-id0987dcba-09fe-87dc-65ba-ab0987654321
^
--queryCiphertextBlob
^
--outputtext
>
ExampleReEncryptedFile.base64
그런 다음
certutil
유틸리티를 사용하세요.certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
출력:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.
자세한 내용은 AWS Key Management Service API 참조의 ReEncrypt <https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html을 참조하세요.
-
자세한 API 내용은 명령 참조ReEncrypt
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 retire-grant
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
고객 마스터 키에 대한 권한 부여를 사용 중지하는 방법
다음
retire-grant
예제에서는 KMS 키에서 권한을 삭제합니다.다음 예시 명령은
grant-id
및key-id
파라미터를 지정합니다.key-id
파라미터 값은 키ARN의 KMS 키여야 합니다.aws kms retire-grant \ --grant-id
1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3
\ --key-idarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
이 명령은 출력을 생성하지 않습니다. 권한 부여가 사용 중지되었는지 확인하려면
list-grants
명령을 사용하세요.자세한 내용은 AWS Key Management Service 개발자 안내서의 권한 부여 사용 중지 및 취소를 참조하세요.
-
자세한 API 내용은 명령 참조RetireGrant
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 revoke-grant
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
고객 마스터 키에 대한 권한 부여를 사용 중지하는 방법
다음
revoke-grant
예제에서는 KMS 키에서 권한을 삭제합니다. 다음 예시 명령은grant-id
및key-id
파라미터를 지정합니다.key-id
파라미터의 값은 키의 키 ID 또는 키일 수 ARN 있습니다KMS.aws kms revoke-grant \ --grant-id
1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
이 명령은 출력을 생성하지 않습니다. 권한 부여가 취소되었는지 확인하려면
list-grants
명령을 사용하세요.자세한 내용은 AWS Key Management Service 개발자 안내서의 권한 부여 사용 중지 및 취소를 참조하세요.
-
자세한 API 내용은 명령 참조RevokeGrant
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 rotate-key-on-demand
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키의 온디맨드 교체를 수행하려면
다음
rotate-key-on-demand
예제에서는 지정된 키에 대한 KMS 키 구성 요소의 교체를 즉시 시작합니다.aws kms rotate-key-on-demand \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
출력:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }
자세한 내용은 Key Management Service 개발자 안내서의 온디맨드 키 교체를 수행하는 방법을 참조하세요. AWS
-
자세한 API 내용은 명령 참조RotateKeyOnDemand
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 schedule-key-deletion
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
고객 관리형 KMS 키 삭제를 예약합니다.
다음
schedule-key-deletion
예제에서는 지정된 고객 관리형 KMS 키를 15일 후에 삭제하도록 예약합니다.--key-id
파라미터는 KMS 키를 식별합니다. 이 예제에서는 키 ARN 값을 사용하지만 키 ID 또는 KMS 키ARN의 를 사용할 수 있습니다.--pending-window-in-days
파라미터는 7~30일 대기 기간의 길이를 지정합니다. 기본 대기 기간은 30일입니다. 이 예제에서는 15의 값을 지정합니다. 이 값은 명령이 완료된 후 15일 후에 KMS 키를 영구적으로 삭제 AWS 하도록 지시합니다.aws kms schedule-key-deletion \ --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --pending-window-in-days 15
응답에는 키 ARN, 키 상태, 대기 기간(
PendingWindowInDays
) 및 Unix 시간의 삭제 날짜가 포함됩니다. 삭제 날짜를 현지 시간으로 보려면 콘솔을 AWS KMS 사용합니다. KMSPendingDeletion
키 상태의 키는 암호화 작업에 사용할 수 없습니다.{ "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "DeletionDate": "2022-06-18T23:43:51.272000+00:00", "KeyState": "PendingDeletion", "PendingWindowInDays": 15 }
자세한 내용은 AWS Key Management Service 개발자 안내서의 키 삭제를 참조하세요.
-
자세한 API 내용은 명령 참조ScheduleKeyDeletion
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 sign
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 메시지에 대한 디지털 서명을 생성하려면
다음
sign
예제에서는 짧은 메시지에 대한 암호화 서명을 생성합니다. 명령 출력에는verify
명령을 사용하여 확인할 수 있는 base-64 인코딩Signature
필드가 포함됩니다.서명할 메시지와 비대칭 KMS 키가 지원하는 서명 알고리즘을 지정해야 합니다. KMS 키의 서명 알고리즘을 가져오려면
describe-key
명령을 사용합니다.2.0에서 AWS CLI
message
파라미터 값은 Base64-encoded이어야 합니다. 또는 메시지를 파일에 저장하고 에 AWS CLI 파일에서 바이너리 데이터를 읽도록 지시하는fileb://
접두사를 사용할 수 있습니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다. 키 ID는 KMS 키 사용량이 SIGN_인 비대칭 키를 나타내야 합니다VERIFY.
msg=(echo 'Hello World' | base64) aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://UnsignedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256
출력:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Signature": "ABCDEFhpyVYyTxbafE74ccSvEJLJr3zuoV1Hfymz4qv+/fxmxNLA7SE1SiF8lHw80fKZZ3bJ...", "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }
에서 비대칭 KMS 키를 사용하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 에서 비대칭 키를 AWS KMS AWS KMS참조하세요.
예제 2: 디지털 서명을 파일에 저장하려면(Linux 및 macOs)
다음
sign
예제에서는 로컬 파일에 저장된 짧은 메시지에 대한 암호화 서명을 생성합니다. 또한 명령은 응답에서Signature
속성을 가져오고 Base64-decodes하여 ExampleSignature 파일에 저장합니다. 서명을 확인하는verify
명령에서 서명 파일을 사용할 수 있습니다.sign
명령에는 Base64-encoded 메시지와 비대칭 KMS 키가 지원하는 서명 알고리즘이 필요합니다. KMS 키가 지원하는 서명 알고리즘을 가져오려면describe-key
명령을 사용합니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다. 키 ID는 KMS 키 사용량이 SIGN_인 비대칭 키를 나타내야 합니다VERIFY.
echo 'hello world' | base64 > EncodedMessage aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ --output text \ --query Signature | base64 --decode > ExampleSignature
이 명령은 출력을 생성하지 않습니다. 이 예제에서는 출력의
Signature
속성을 추출하여 파일에 저장합니다.에서 비대칭 KMS 키를 사용하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 에서 비대칭 키를 AWS KMS AWS KMS참조하세요.
-
자세한 API 내용은 로그인
AWS CLI 명령 참조를 참조하세요.
-
다음 코드 예시에서는 tag-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키에 태그를 추가하려면
다음
tag-resource
예제에서는 고객 관리형 KMS 키에"Purpose":"Test"
및"Dept":"IT"
태그를 추가합니다. 이와 같은 태그를 사용하여 KMS 키에 레이블을 지정하고 권한 및 감사를 위한 KMS 키 범주를 생성할 수 있습니다.KMS 키를 지정하려면
key-id
파라미터를 사용합니다. 이 예제에서는 키 ID 값을 사용하지만 이 명령ARN에서 키 ID 또는 키를 사용할 수 있습니다.aws kms tag-resource \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --tags TagKey='Purpose',TagValue='Test' TagKey='Dept',TagValue='IT'이 명령은 출력을 생성하지 않습니다. KMS 키에서 태그를 AWS KMS 보려면
list-resource-tags
명령을 사용합니다.에서 태그를 사용하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 태그 지정을 AWS KMS참조하세요.
-
자세한 API 내용은 명령 참조TagResource
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 untag-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
KMS 키에서 태그를 삭제하려면
다음
untag-resource
예제에서는 고객 관리형"Purpose"
키에서 KMS 키가 있는 태그를 삭제합니다.KMS 키를 지정하려면
key-id
파라미터를 사용합니다. 이 예제에서는 키 ID 값을 사용하지만 이 명령ARN에서 키 ID 또는 키를 사용할 수 있습니다. 이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.aws kms untag-resource \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --tag-key 'Purpose
'이 명령은 출력을 생성하지 않습니다. KMS 키에서 태그를 AWS KMS 보려면
list-resource-tags
명령을 사용합니다.에서 태그를 사용하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 태그 지정을 AWS KMS참조하세요.
-
자세한 API 내용은 명령 참조UntagResource
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-alias
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
별칭을 다른 KMS 키와 연결하려면
다음
update-alias
예제에서는 별칭을 다른 KMS 키alias/test-key
와 연결합니다.--alias-name
파라미터는 별칭을 지정합니다. 별칭 이름 값은 로 시작해야 합니다alias/
.--target-key-id
파라미터는 별칭과 연결할 KMS 키를 지정합니다. 별칭에 대한 현재 KMS 키를 지정할 필요가 없습니다.aws kms update-alias \ --alias-name alias/test-key \ --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab
이 명령은 출력을 생성하지 않습니다. 별칭을 찾으려면
list-aliases
명령을 사용하세요.자세한 내용은 AWS Key Management Service 개발자 안내서의 별칭 업데이트를 참조하세요.
-
자세한 API 내용은 명령 참조UpdateAlias
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-custom-key-store
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 사용자 지정 키 스토어의 표시 이름을 편집하려면
다음
update-custom-key-store
예제에서는 사용자 지정 키 스토어의 이름을 변경합니다. 이 예제는 AWS 클라우드HSM 키 스토어 또는 외부 키 스토어에서 작동합니다.custom-key-store-id
를 사용하여 키 스토어를 식별합니다.new-custom-key-store-name
파라미터를 사용하여 새 표시 이름을 지정합니다.AWS CloudHSM 키 스토어의 표시 이름을 업데이트하려면 먼저
disconnect-custom-key-store
명령을 사용하여 키 스토어의 연결을 해제해야 합니다. 외부 키 스토어가 연결되거나 연결이 끊긴 상태에서 해당 스토어의 표시 이름을 업데이트할 수 있습니다. 사용자 지정 키 스토어의 연결 상태를 찾으려면describe-custom-key-store
명령을 사용합니다.aws kms update-custom-key-store \ --custom-key-store-id
cks-1234567890abcdef0
\ --new-custom-key-store-nameExampleKeyStore
이 명령은 데이터를 반환하지 않습니다. 명령이 작동하는지 확인하려면
describe-custom-key-stores
명령을 사용합니다.AWS CloudHSM 키 스토어 업데이트에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS CloudHSM 키 스토어 설정 편집을 참조하세요.
외부 키 스토어 업데이트에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 외부 키 스토어 속성 편집을 참조하세요.
예제 2: AWS CloudHSM 키 스토어의 kmsuser 암호를 편집하려면
다음
update-custom-key-store
예제에서는 지정된 키 스토어와 연결된 클라우드HSM 클러스터kmsuser
의kmsuser
암호 값을 에 대한 현재 암호로 업데이트합니다. 이 명령은 클러스터의kmsuser
암호를 변경하지 않습니다. 현재 암호를 알려줍니다 AWS KMS. 에 현재kmsuser
암호가 KMS 없는 경우 AWS 클라우드HSM 키 스토어에 연결할 수 없습니다.NOTE: AWS CloudHSM 키 스토어를 업데이트하기 전에 연결을 해제해야 합니다.
disconnect-custom-key-store
명령을 사용합니다. 명령이 완료되면 AWS CloudHSM 키 스토어를 다시 연결할 수 있습니다.connect-custom-key-store
명령을 사용합니다.aws kms update-custom-key-store \ --custom-key-store-id
cks-1234567890abcdef0
\ --key-store-passwordExamplePassword
이 명령은 출력을 반환하지 않습니다. 변경 사항이 유효한지 확인하려면
describe-custom-key-stores
명령을 사용합니다.AWS CloudHSM 키 스토어 업데이트에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS CloudHSM 키 스토어 설정 편집을 참조하세요.
예제 3: AWS CloudHSM 키 스토어의 AWS CloudHSM 클러스터 편집
다음 예제에서는 AWS CloudHSM 키 스토어와 연결된 AWS CloudHSM 클러스터를 동일한 클러스터의 다른 백업과 같은 관련 클러스터로 변경합니다.
NOTE: AWS CloudHSM 키 스토어를 업데이트하기 전에 연결을 해제해야 합니다.
disconnect-custom-key-store
명령을 사용합니다. 명령이 완료되면 AWS CloudHSM 키 스토어를 다시 연결할 수 있습니다.connect-custom-key-store
명령을 사용합니다.aws kms update-custom-key-store \ --custom-key-store-id
cks-1234567890abcdef0
\ --cloud-hsm-cluster-idcluster-1a23b4cdefg
이 명령은 출력을 반환하지 않습니다. 변경 사항이 유효한지 확인하려면
describe-custom-key-stores
명령을 사용합니다.AWS CloudHSM 키 스토어 업데이트에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS CloudHSM 키 스토어 설정 편집을 참조하세요.
예제 4: 외부 키 스토어의 프록시 인증 자격 증명을 편집하려면
다음 예제에서는 외부 키 스토어의 프록시 인증 자격 증명을 업데이트합니다. 값 중 하나만 변경
access-key-id
하더라도raw-secret-access-key
및 를 모두 지정해야 합니다. 이 기능을 사용하여 잘못된 자격 증명을 수정하거나 외부 키 스토어 프록시가 자격 증명을 교체할 때 자격 증명을 변경할 수 있습니다.외부 키 스토어에서 에 대한 AWS KMS 프록시 인증 자격 증명을 설정합니다. 그런 다음 이 명령을 사용하여 에 자격 증명을 제공합니다 AWS KMS. AWS KMS 는 이 자격 증명을 사용하여 외부 키 스토어 프록시에 대한 요청에 서명합니다.
외부 키 스토어가 연결되거나 연결이 끊긴 상태에서 프록시 인증 보안 인증을 업데이트할 수 있습니다. 사용자 지정 키 스토어의 연결 상태를 찾으려면
describe-custom-key-store
명령을 사용합니다.aws kms update-custom-key-store \ --custom-key-store-id
cks-1234567890abcdef0
\ --xks-proxy-authentication-credential"AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
이 명령은 출력을 반환하지 않습니다. 변경 사항이 유효한지 확인하려면
describe-custom-key-stores
명령을 사용합니다.외부 키 스토어 업데이트에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 외부 키 스토어 속성 편집을 참조하세요.
예제 5: 외부 키 스토어의 프록시 연결을 편집하려면
다음 예제에서는 외부 키 스토어 프록시 연결 옵션을 퍼블릭 엔드포인트 연결에서 VPC 엔드포인트 서비스 연결로 변경합니다.
xks-proxy-connectivity
값을 변경하는 것 외에도 VPC 엔드포인트 서비스와 연결된 프라이빗 DNS 이름을 반영하도록xks-proxy-uri-endpoint
값을 변경해야 합니다. 또한xks-proxy-vpc-endpoint-service-name
값을 추가해야 합니다.NOTE: 외부 스토어의 프록시 연결을 업데이트하기 전에 연결을 해제해야 합니다.
disconnect-custom-key-store
명령을 사용합니다. 명령이 완료되면connect-custom-key-store
명령을 사용하여 외부 키 스토어를 다시 연결할 수 있습니다.aws kms update-custom-key-store \ --custom-key-store-id
cks-1234567890abcdef0
\ --xks-proxy-connectivityVPC_ENDPOINT_SERVICE
\ --xks-proxy-uri-endpoint"https://myproxy-private.xks.example.com"
\ --xks-proxy-vpc-endpoint-service-name"com.amazonaws.vpce.us-east-1.vpce-svc-example"
이 명령은 출력을 반환하지 않습니다. 변경 사항이 유효한지 확인하려면
describe-custom-key-stores
명령을 사용합니다.외부 키 스토어 업데이트에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 외부 키 스토어 속성 편집을 참조하세요.
-
자세한 API 내용은 명령 참조UpdateCustomKeyStore
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-key-description
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 고객 관리형 KMS 키에 설명을 추가하거나 변경하려면
다음
update-key-description
예제에서는 고객 관리형 KMS 키에 설명을 추가합니다. 동일한 명령을 사용하여 기존 설명을 변경할 수 있습니다.--key-id
파라미터는 명령의 KMS 키를 식별합니다. 이 예제에서는 키 ARN 값을 사용하지만 키 ID 또는 KMS 키ARN의 키를 사용할 수 있습니다.--description
파라미터는 새 설명을 지정합니다. 이 파라미터의 값은 KMS 키에 대한 현재 설명이 있는 경우 대체합니다.aws kms update-key-description \ --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --description "IT Department test key"
이 명령은 출력을 생성하지 않습니다. KMS 키에 대한 설명을 보려면
describe-key
명령을 사용합니다.자세한 내용은 키 관리 서비스 참조UpdateKeyDescription의 섹션을 참조하세요. AWS API
예제 2: 고객 관리형 KMS 키에 대한 설명을 삭제하려면
다음
update-key-description
예제에서는 고객 관리형 KMS 키에 대한 설명을 삭제합니다.--key-id
파라미터는 명령의 KMS 키를 식별합니다. 이 예제에서는 키 ID 값을 사용하지만 키 ID 또는 KMS 키ARN의 키를 사용할 수 있습니다. 빈 문자열 값('')이 있는--description
파라미터는 기존 설명을 삭제합니다.aws kms update-key-description \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --description ''
이 명령은 출력을 생성하지 않습니다. KMS 키에 대한 설명을 보려면 describe-key 명령을 사용합니다.
자세한 내용은 키 관리 서비스 참조UpdateKeyDescription의 섹션을 참조하세요. AWS API
-
자세한 API 내용은 명령 참조UpdateKeyDescription
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 verify
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
디지털 서명을 확인하려면
다음
verify
예제에서는 짧은 Base64-encoded 메시지에 대한 암호화 서명을 확인합니다. 키 ID, 메시지, 메시지 유형 및 서명 알고리즘은 메시지에 서명하는 데 사용된 것과 동일해야 합니다. 지정한 서명은 base64로 인코딩할 수 없습니다.sign
명령이 반환하는 서명을 디코딩하는 데 도움이 필요하면sign
명령 예제를 참조하세요.명령의 출력에는 서명이 확인되었음을 나타내는 부울
SignatureValid
필드가 포함됩니다. 서명 검증에 실패하면verify
명령도 실패합니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.
aws kms verify \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --messagefileb://EncodedMessage
\ --message-typeRAW
\ --signing-algorithmRSASSA_PKCS1_V1_5_SHA_256
\ --signaturefileb://ExampleSignature
출력:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "SignatureValid": true, "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }
에서 비대칭 KMS 키 사용에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 비대칭 키 사용을 AWS KMS참조하세요.
-
자세한 API 내용은 명령 참조의 확인을
참조하세요. AWS CLI
-