The recommended, credential-free way for an application that will run on an OCI Compute instance to call OCI services is to enable Instance Principals.
1. The instance is placed in a Dynamic Group that represents the application.
2. IAM policies are written for that Dynamic Group granting only the required permissions.
3. At run time the SDK/CLI obtains a temporary security token from the Instance Metadata Service and signs API requests.
Because no long-lived user credentials are stored or shared and access is limited by policy, this method meets the requirement to “securely grant … access to specific OCI resources.”