Skip to main content

Resource based policy

Imagine you have two AWS accounts, account A & account B. There are AWS resources in the account B which you want to share with account A. Let's say an S3 bucket for example.

This can be achieved as follows:

1. Create an IAM role in account B which can access that S3 bucket. Let the users from account A assume that role in account B and eventually access the S3 bucket in account B. The role acts as a proxy here. One of the disadvantages of this case is the user context is changed from account A's user to account B's role. That means when the context is changed to account B's role the user will not be able to access resources in account A anymore. This is a user based policy.

2. There are some resources in AWS you can attach the resource based policies to. You can mention the list of AWS accounts which can access this resource in this policy. The user will be able to access that S3 bucket in account B. At the same time, the user will also be accesing the resources in account A.

Comments

Popular posts from this blog

How to squash multiple commits into one?

Suppose you have commits as follows: HEAD~0 --> Commit 5 eeeeeee HEAD~1 --> Commit 4 ddddddd HEAD~2 --> Commit 3 ccccccc HEAD~3 --> Commit 2 bbbbbbb HEAD~4 --> Commit 1 aaaaaaa If you want to squash commits 3, 4 and 5 and make them as a single commit, run the commands below: git rebase -i HEAD~3 3 means, you are squashing the last 3 commits. Update text in editor opened, save and close. git push -f Now, the commits would be as follows: HEAD~0 --> Squashed Commit fffffff HEAD~1 --> Commit 2 bbbbbbb HEAD~2 --> Commit 1 aaaaaaa

GoLang - How to check if key exists in map?

package main import "fmt" var m map[string]string func main() { m = make(map[string]string) m["foo"] = "abc" if val, ok := m["foo"]; ok { fmt.Println("foo found -", val) } else { fmt.Println("foo not found") } if val, ok := m["bar"]; ok { fmt.Println("bar found -", val) } else { fmt.Println("bar not found") } } Output: foo found - abc bar not found

How to delete commits in Git?

Suppose you have 3 commits with SHAs as follows: HEAD~0 --> Commit 3 ccccccc HEAD~1 --> Commit 2 bbbbbbb HEAD~2 --> Commit 1 aaaaaaa If you want to remove the last two commits (i.e., commits 2 and 3) and make Commit 1 as the latest commit, run the following commands: git reset --hard aaaaaaa git push origin HEAD --force Now, the commit history would be as follows: HEAD~0 --> Commit 1 aaaaaaa