{"id":1113,"date":"2023-02-03T11:11:01","date_gmt":"2023-02-03T16:11:01","guid":{"rendered":"https:\/\/cloudlearning365.com\/?p=1113"},"modified":"2023-03-06T09:37:59","modified_gmt":"2023-03-06T14:37:59","slug":"failed-to-launch-aviatrix-gateway","status":"publish","type":"post","link":"https:\/\/cloudlearning365.com\/?p=1113","title":{"rendered":"How to launch Aviatrix Gateway in AWS using CMK (Customer Managed Key)"},"content":{"rendered":"\n<p>Recently we were helping customer to launch Spoke Gateways in their AWS account, after 10 minutes launching the gateway, the gateway creation were reverted and following errors generated<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Error: &#91;AVXERR-TRANSIT-0119] Failed to launch gateway test. Instance i-0005da0797da40ae8 could not be started. Delete the gateway test to clean up resources and try again. It is possible that gateway size t3.small is not supported in the region us-east-1 or EBS encryption KMS CMK Key policy Key administrators and users are not updated with your Aviatrix APP role and Aviatrix EC2 role.<\/code><\/pre>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Behaviors<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aviatrix Controller is in AWS. Controller have been assigned aviatrix-role-ec2 role, and assumes aviatrix-role-app role, which in turn uses aviatrix-app-policy policy.<\/li>\n\n\n\n<li>Right after you start to create the gateway, if you switch over to AWS console, you can observe the instance immediately gets shutdown and terminated.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/2023-02-03-10-11-03.mp4\"><\/video><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Within CloudTrail, you cannot find any events with <strong>Event name<\/strong> equals <strong>TerminateInstances <\/strong>in last 30 minutes. <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"354\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-1024x354.png\" alt=\"\" class=\"wp-image-1114\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-1024x354.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-300x104.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-768x265.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-1536x531.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-2048x708.png 2048w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-500x173.png 500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>After 10 minutes Aviatrix controller would report the error and roll back gateway deployment<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"522\" height=\"615\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-1.png\" alt=\"\" class=\"wp-image-1115\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-1.png 522w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-1-255x300.png 255w\" sizes=\"auto, (max-width: 522px) 100vw, 522px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This issue doesn&#8217;t happen if Aviatrix controller is using IAM based authentication, where the IAM user have been granted <strong>AdministratorAccess <\/strong>policy<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">The causes<\/h2>\n\n\n\n<p>While as indicated in the error message, two potential causes of the issue:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The size of the gateway you are launching isn&#8217;t available in the target AZ. You may try to launch another instance with the same size in the same AZ manually from AWS console to confirm if this was the cause<\/li>\n\n\n\n<li>The second issue was what we ran into: Customer configured EBS (Elastic Block Storage) encryption for the region where we wanted to launch the gateway, also they selected to  CMK (Customer managed keys) instead of  AWS managed keys for the encryption. And our aviatrix-role-app wasn&#8217;t added as CMK key user.<\/li>\n\n\n\n<li>Some customer have AWS Config defined tag policy that declined the gateway deployment due to incorrect tag key parameters.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Inspection<\/h2>\n\n\n\n<p>Go to EC2 Dashboard, select the correct region, on right side find <strong>EBS encryption <\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"346\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-2-1024x346.png\" alt=\"\" class=\"wp-image-1117\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-2-1024x346.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-2-300x101.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-2-768x260.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-2-1536x519.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-2-500x169.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-2.png 1899w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Verify if EBS encryption was <mark style=\"background-color:rgba(0, 0, 0, 0);color:#358d03\" class=\"has-inline-color\"><strong>Enabled<\/strong><\/mark>, and copy down the KMS key ID, eg: <strong>597160bf-b8e6-4968-ba13-bb27456653cf<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-13-1024x596.png\" alt=\"\" class=\"wp-image-1128\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-13-1024x596.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-13-300x175.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-13-768x447.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-13-500x291.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-13.png 1245w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Go to KMS services, <\/p>\n\n\n\n<p>If customer is using the AWS managed keys, eg the <strong>aws\/ebs<\/strong> key highlighted, this won&#8217;t be an issue. You know it&#8217;s not the key been used, as the Key ID didn&#8217;t match <strong>597160bf-b8e6-4968-ba13-bb27456653cf<\/strong> noted before<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"343\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-5-1024x343.png\" alt=\"\" class=\"wp-image-1120\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-5-1024x343.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-5-300x100.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-5-768x257.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-5-1536x514.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-5-500x167.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-5.png 1641w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If you click on the <strong>aws\/ebs<\/strong> key, in Key policy section, you will note that all AWS principles (*) will have access to this key for encrypt\/decrypt etc. This is why when the AWS managed keys been used you should not have an issue.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"676\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-12-1024x676.png\" alt=\"\" class=\"wp-image-1127\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-12-1024x676.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-12-300x198.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-12-768x507.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-12-1536x1014.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-12-455x300.png 455w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-12.png 1861w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now switch over to <strong>Customer managed keys<\/strong>, you should find the key ID we recorded earlier, eg: <strong>597160bf-b8e6-4968-ba13-bb27456653cf<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"231\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-7-1024x231.png\" alt=\"\" class=\"wp-image-1122\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-7-1024x231.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-7-300x68.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-7-768x173.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-7-1536x347.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-7-500x113.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-7.png 2039w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Click on the CMK key. In my example, I&#8217;ve purposely removed any <strong>key administrators<\/strong>, and <strong>key users<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"932\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-11-1024x932.png\" alt=\"\" class=\"wp-image-1126\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-11-1024x932.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-11-300x273.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-11-768x699.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-11-1536x1398.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-11-330x300.png 330w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-11.png 1934w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If you prefer JSON format, you can click on switch to policy view. Note the root account could have full KMS access, which explained why IAM user with <strong>AdministratorAccess <\/strong>policy worked fine.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"673\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-10-1024x673.png\" alt=\"\" class=\"wp-image-1125\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-10-1024x673.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-10-300x197.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-10-768x505.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-10-1536x1010.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-10-456x300.png 456w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-10.png 1904w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Our controller is trying to assume role <strong>aviatrix-role-app<\/strong> which doesn&#8217;t have permission to use the CMK key to encrypt the EBS volume, hence the gateway creation would fail.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The fix<\/h2>\n\n\n\n<p>In CMK Policy view, make sure to add the <strong>aviatrix-role-app<\/strong> ARN to both &#8220;<strong>Allow use of the key<\/strong>&#8221; and &#8220;<strong>Allow attachment of persistent resources<\/strong>&#8221; sections.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"Id\": \"key-consolepolicy-3\",\n    \"Version\": \"2012-10-17\",\n    \"Statement\": &#91;\n        {\n            \"Sid\": \"Enable IAM User Permissions\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": \"arn:aws:iam::&lt;aws_account_id&gt;:root\"\n            },\n            \"Action\": \"kms:*\",\n            \"Resource\": \"*\"\n        },\n<mark style=\"background-color:#e2e2e2\" class=\"has-inline-color\">        {\n            \"Sid\": \"Allow use of the key\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": &#91;\n                    \"arn:aws:iam::&lt;aws_account_id&gt;:role\/&lt;some_other_role&gt;\",\n                    \"arn:aws:iam::&lt;aws_account_id&gt;:role\/aviatrix-role-app\"\n                ]\n            },\n            \"Action\": &#91;\n                \"kms:Encrypt\",\n                \"kms:Decrypt\",\n                \"kms:ReEncrypt*\",\n                \"kms:GenerateDataKey*\",\n                \"kms:DescribeKey\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"Allow attachment of persistent resources\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": &#91;\n                    \"arn:aws:iam::&lt;aws_account_id&gt;:role\/&lt;some_other_role&gt;\",\n                    \"arn:aws:iam::&lt;aws_account_id&gt;:role\/aviatrix-role-app\"\n                ]\n            },\n            \"Action\": &#91;\n                \"kms:CreateGrant\",\n                \"kms:ListGrants\",\n                \"kms:RevokeGrant\"\n            ],\n            \"Resource\": \"*\",\n            \"Condition\": {\n                \"Bool\": {\n                    \"kms:GrantIsForAWSResource\": \"true\"\n                }\n            }\n        }<\/mark>\n    ]\n}<\/code><\/pre>\n\n\n\n<p>Alternatively, if you don&#8217;t like to use JSON, you may also want to switch to Default view. In the <strong>Key users <\/strong>section, click on <strong>Add<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"905\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-14-1024x905.png\" alt=\"\" class=\"wp-image-1129\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-14-1024x905.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-14-300x265.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-14-768x679.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-14-1536x1357.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-14-339x300.png 339w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-14.png 1910w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Search <strong>aviatrix-role-app<\/strong> and add<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"802\" height=\"482\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-15.png\" alt=\"\" class=\"wp-image-1130\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-15.png 802w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-15-300x180.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-15-768x462.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-15-500x300.png 500w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/figure>\n\n\n\n<p>Now the gateway launch should be successful. If you switch over to AWS console, for the newly launched gateway, the status should be Running, and if switch over to Storage tab, and you can check the KMS key ID should match the CMK key, that you have granted key user permission for <strong>aviatrix-role-app<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"490\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-16-1024x490.png\" alt=\"\" class=\"wp-image-1131\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-16-1024x490.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-16-300x144.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-16-768x368.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-16-1536x735.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-16-500x239.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-16.png 1815w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If the controller would be properly delete the gateway, in CloudTrail, <strong>Event name<\/strong> equals <strong>TerminateInstances<\/strong> would show the as following:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"199\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-17-1024x199.png\" alt=\"\" class=\"wp-image-1135\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-17-1024x199.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-17-300x58.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-17-768x149.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-17-1536x298.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-17-500x97.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-17.png 1702w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"972\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-18-1024x972.png\" alt=\"\" class=\"wp-image-1136\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-18-1024x972.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-18-300x285.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-18-768x729.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-18-1536x1457.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-18-316x300.png 316w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/02\/image-18.png 1623w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Recently we were helping customer to launch Spoke Gateways in their AWS account, after 10 minutes launching the gateway, the gateway creation were reverted and following errors generated<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2,3],"tags":[],"class_list":["post-1113","post","type-post","status-publish","format-standard","hentry","category-aviatrix","category-aws"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1113"}],"version-history":[{"count":9,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1113\/revisions"}],"predecessor-version":[{"id":1286,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1113\/revisions\/1286"}],"wp:attachment":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}