diff --git a/moto/kms/models.py b/moto/kms/models.py index 22f0039b2..cceb96342 100644 --- a/moto/kms/models.py +++ b/moto/kms/models.py @@ -9,6 +9,8 @@ from boto3 import Session from moto.core import BaseBackend, BaseModel from moto.core.utils import iso_8601_datetime_without_milliseconds +from moto.iam.models import ACCOUNT_ID + from .utils import decrypt, encrypt, generate_key_id, generate_master_key @@ -21,11 +23,16 @@ class Key(BaseModel): self.description = description self.enabled = True self.region = region - self.account_id = "012345678912" + self.account_id = ACCOUNT_ID self.key_rotation_status = False self.deletion_date = None self.tags = tags or {} self.key_material = generate_master_key() + self.origin = "AWS_KMS" + self.key_manager = "CUSTOMER" + self.customer_master_key_spec = "SYMMETRIC_DEFAULT" + self.encryption_algorithms = ["SYMMETRIC_DEFAULT"] + self.signing_algorithms = None @property def physical_resource_id(self): @@ -43,11 +50,16 @@ class Key(BaseModel): "AWSAccountId": self.account_id, "Arn": self.arn, "CreationDate": iso_8601_datetime_without_milliseconds(datetime.now()), + "CustomerMasterKeySpec": self.customer_master_key_spec, "Description": self.description, "Enabled": self.enabled, + "EncryptionAlgorithms": self.encryption_algorithms, "KeyId": self.id, + "KeyManager": self.key_manager, "KeyUsage": self.key_usage, "KeyState": self.key_state, + "Origin": self.origin, + "SigningAlgorithms": self.signing_algorithms, } } if self.key_state == "PendingDeletion": diff --git a/tests/test_kms/test_kms.py b/tests/test_kms/test_kms.py index 70fa68787..8c2843ee4 100644 --- a/tests/test_kms/test_kms.py +++ b/tests/test_kms/test_kms.py @@ -46,10 +46,23 @@ def test_create_key(): Tags=[{"TagKey": "project", "TagValue": "moto"}], ) + key["KeyMetadata"]["Arn"].should.equal( + "arn:aws:kms:us-east-1:123456789012:key/{}".format( + key["KeyMetadata"]["KeyId"] + ) + ) + key["KeyMetadata"]["AWSAccountId"].should.equal("123456789012") + key["KeyMetadata"]["CreationDate"].should.be.a(datetime) + key["KeyMetadata"]["CustomerMasterKeySpec"].should.equal("SYMMETRIC_DEFAULT") key["KeyMetadata"]["Description"].should.equal("my key") + key["KeyMetadata"]["Enabled"].should.be.ok + key["KeyMetadata"]["EncryptionAlgorithms"].should.equal(["SYMMETRIC_DEFAULT"]) + key["KeyMetadata"]["KeyId"].should_not.be.empty + key["KeyMetadata"]["KeyManager"].should.equal("CUSTOMER") + key["KeyMetadata"]["KeyState"].should.equal("Enabled") key["KeyMetadata"]["KeyUsage"].should.equal("ENCRYPT_DECRYPT") - key["KeyMetadata"]["Enabled"].should.equal(True) - key["KeyMetadata"]["CreationDate"].should.be.a(date) + key["KeyMetadata"]["Origin"].should.equal("AWS_KMS") + key["KeyMetadata"].should_not.have.key("SigningAlgorithms") @mock_kms_deprecated