Personal infrastructure for blockchain applications and portfolio management using Oracle Cloud Infrastructure (OCI) and Terraform.
- Compute Instance: Blockchain node and portfolio application host
- Network Configuration: VCN, Subnet, Security Lists
- Deployment: Terraform-managed infrastructure
- Region: us-chicago-1
- Compute Shape: VM.Standard.A1.Flex (4 OCPUs, 24GB RAM)
- Primary Use: Personal blockchain and asset management
- Minimal external access
- SSH-only authentication
- No multi-user support
- Ensure OCI CLI is configured
- Validate variables in
terraform.tfvars
- Run
terraform init
- Run
terraform plan
- Run
terraform apply
- Check OCI IAM policies
- Verify network security configurations
- Validate API key permissions
- Implement more granular security rules
- Add monitoring and logging
- Explore multi-region redundancy
Regular updates and security patches recommended.
- Oracle Cloud Infrastructure account
- Terraform installed (version 0.12 or later)
- OCI CLI configured with API key
- SSH key pair for instance access
- Create your API signing key:
openssl genrsa -out ~/.oci/oci_api_key.pem 2048
openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem
-
Upload the public key to OCI Console:
- Navigate to User Settings
- Add the public key in API Keys section
- Save the fingerprint
-
Copy
terraform.tfvars.example
toterraform.tfvars
:
cp terraform.tfvars.example terraform.tfvars
- Edit
terraform.tfvars
with your specific values:tenancy_ocid
user_ocid
fingerprint
private_key_path
compartment_id
availability_domain
- Initialize Terraform:
terraform init
- Review the plan:
terraform plan
- Apply the configuration:
terraform apply
- When finished, destroy the infrastructure:
terraform destroy
- Enhanced Instance Security:
- Secure Boot prevents unauthorized boot loaders and kernels
- TPM provides hardware-based security features
- Measured Boot ensures platform integrity
- Memory Encryption protects against physical memory attacks
- The security list is configured with basic rules. Adjust according to your needs.
- SSH access is restricted by default
- All sensitive information should be stored in
terraform.tfvars
(git-ignored) - Use environment variables for additional security:
export TF_VAR_tenancy_ocid="your-tenancy-ocid" export TF_VAR_user_ocid="your-user-ocid" export TF_VAR_fingerprint="your-fingerprint" export TF_VAR_private_key_path="path-to-your-private-key"