기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS SDK 또는 CLI와 Verify 함께 사용
다음 코드 예시는 Verify의 사용 방법을 보여 줍니다.
- CLI
-
- AWS CLI
-
디지털 서명을 확인하려면
다음
verify명령은 Base64로 인코딩된 짧은 메시지에 대한 암호화 서명을 확인합니다. 키 ID, 메시지, 메시지 유형 및 서명 알고리즘은 메시지 서명에 사용된 것과 동일해야 합니다.AWS CLI v2에서
message파라미터 값은 Base64-encoded되어야 합니다. 또는 메시지를 파일에 저장하고 AWS CLI에 파일에서 이진 데이터를 읽도록 지시하는fileb://접두사를 사용할 수 있습니다.지정하는 서명은 base64로 인코딩할 수 없습니다.
sign명령이 반환하는 서명을 디코딩하는 데 도움이 필요하면sign명령 예시를 참조하세요.명령의 출력에는 서명이 확인되었음을 나타내는 부울
SignatureValid필드가 포함됩니다. 서명 검증에 실패하면verify명령도 실패합니다.이 명령을 실행하기 전에 예제 키 ID를 AWS 계정의 유효한 키 ID로 바꿉니다.
aws kms verify \ --key-id1234abcd-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" }AWS KMS에서 비대칭 KMS 키를 사용하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 비대칭 키 사용을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 Verify
를 참조하세요.
-
- Python
-
- SDK for Python(Boto3)
-
참고
GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리
에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요. class KeyEncrypt: def __init__(self, kms_client): self.kms_client = kms_client @classmethod def from_client(cls) -> "KeyEncrypt": """ Creates a KeyEncrypt instance with a default KMS client. :return: An instance of KeyEncrypt initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def verify(self, key_id: str, message: str, signature: str) -> bool: """ Verifies a signature against a message. :param key_id: The ARN or ID of the key used to sign the message. :param message: The message to verify. :param signature: The signature to verify. :return: True when the signature matches the message, otherwise False. """ try: response = self.kms_client.verify( KeyId=key_id, Message=message.encode(), Signature=signature, SigningAlgorithm="RSASSA_PSS_SHA_256", ) valid = response["SignatureValid"] print(f"The signature is {'valid' if valid else 'invalid'}.") return valid except ClientError as err: if err.response["Error"]["Code"] == "SignatureDoesNotMatchException": print("The signature is not valid.") else: logger.error( "Couldn't verify your signature. Here's why: %s", err.response["Error"]["Message"], ) raise-
API 세부 정보는 Python용AWS SDK(Boto3) 참조의 Verify를 참조하세요.
-
- SAP ABAP
-
- SDK for SAP ABAP API
-
참고
GitHub에 더 많은 내용이 있습니다. AWS 코드 예 리포지토리
에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요. TRY. " iv_key_id = 'arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab' (asymmetric key) " iv_message contains the original message " iv_signature contains the signature to verify " iv_signing_algorithm = 'RSASSA_PSS_SHA_256' oo_result = lo_kms->verify( iv_keyid = iv_key_id iv_message = iv_message iv_signature = iv_signature iv_signingalgorithm = iv_signing_algorithm ). DATA(lv_valid) = oo_result->get_signaturevalid( ). IF lv_valid = abap_true. MESSAGE 'Signature is valid.' TYPE 'I'. ELSE. MESSAGE 'Signature is invalid.' TYPE 'I'. ENDIF. CATCH /aws1/cx_kmsdisabledexception. MESSAGE 'The key is disabled.' TYPE 'E'. CATCH /aws1/cx_kmsnotfoundexception. MESSAGE 'Key not found.' TYPE 'E'. CATCH /aws1/cx_kmskmsinvalidsigex. MESSAGE 'Invalid signature.' TYPE 'E'. CATCH /aws1/cx_kmskmsinternalex. MESSAGE 'An internal error occurred.' TYPE 'E'. ENDTRY.-
API 세부 정보는 AWS SDK for SAP ABAP API 참조의 확인을 참조하세요.
-
AWS SDK 개발자 안내서 및 코드 예제의 전체 목록은 섹션을 참조하세요AWS SDK에서이 서비스 사용. 이 주제에는 시작하기에 대한 정보와 이전 SDK 버전에 대한 세부 정보도 포함되어 있습니다.