Giter VIP home page Giter VIP logo

gcp2aws's Introduction

gcp2aws

AWS credential helper for GCP.

Call AWS API using GCP credentials.

Go Report Card Build & Test Maintainability Test Coverage

Requirements

  • GCP
    • Authenticate with gcloud auth application-default login
    • Service Accounts that allow you to impersonate(roles/iam.serviceAccountTokenCreator)
  • AWS
    • IAM Roles that allow service accounts to sts:AssumeRoleWithWebIdentity

Installation

Using go install

go install github.com/porkbeans/gcp2aws@latest

For locally (e.g. ~/.local/bin)

curl -sSL '<TAR_GZ_URL>' | tar -xz -C ~/.local/bin gcp2aws

For globally (e.g. /usr/local/bin)

curl -sSL '<TAR_GZ_URL>' | sudo tar -xz --no-same-owner -C /usr/local/bin gcp2aws

Usage

SYNOPSIS
    gcp2aws -i <SERVICE ACCOUNT EMAIL> -r <ROLE ARN> [-d <DURATION>]

OPTIONS
    -i <SERVICE ACCOUNT EMAIL>
        Service account email to impersonate.
    -r <ROLE ARN>
        Role ARN to AssumeRoleWithWebIdentity.
    -d <DURATION>
        Credential duration. Accept format for Go time.ParseDuration.
        See https://pkg.go.dev/time#ParseDuration

Examples

See Terraform Example to set up GCP Service Account and AWS IAM Role.

AssumeRole with impersonated GCP service account identity.

~/.aws/config

[profile example]
credential_process = /path/to/gcp2aws -r <ROLE ARN> -i <SERVICE ACCOUNT EMAIL>
region = <YOUR REGION>

Development

Required tools

  • go for compiling and testing
  • GNU make for task runner
  • direnv for loading environment variables for tests
  • gibo for updating .gitignore boilerplate

Preparing

  • cp example.env secret.env and edit each values in secret.env for your test environment.
  • direnv allow
  • make test to confirm that you can run tests

Similar projects

gcp2aws's People

Contributors

porkbeans avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.