複数のawsアカウントを持つ会社と契約しています。彼らは私にログインアカウントへのアクセス権を与え、ウェブコンソールで私が作業しているプロジェクトアカウントに「役割を切り替え」ます。 Web GUIで動作します。
aws-cli
で同じことをするにはどうすればよいですか?ログインアカウントのアクセスキーのみがあり、プロジェクトアカウントでユーザーとアクセスキーを作成する権限がありません。可能ですか?
もちろん可能です!
ログインアカウントの認証情報を~/.aws/credentials
に持っているとしましょう。
~ $ cat ~/.aws/credentials
[customer-login]
aws_access_key_id = AKIABCDEFGHJKLMNOPQR
aws_secret_access_key = ZxCvBnMaSdFgHjKlQwErTyUiOp
あなたがする必要があるのは、上記のプロファイルを使用して~/.aws/credentials
に別のプロファイルを追加し、プロジェクトアカウントロールにアカウントを切り替えることだけです。 ProjectアカウントRole ARNも必要です-Webコンソールの[〜#〜 ] iam [〜#〜]->ロールに切り替えた後、プロジェクトアカウント。プロジェクトのアカウント番号が123456789012だとしましょう...
[customer-project]
role_arn = arn:aws:iam::123456789012:role/your-project-role-name # << Change this
source_profile = customer-login
それが整ったら、動作するかどうかをテストできます。
~ $ aws --profile customer-project sts get-caller-identity
{
"Account": "123456789012",
"UserId": "AROA1B2C3D4E5F6G7H8I:botocore-session-1538120713",
"Arn": "arn:aws:sts::123456789012:assumed-role/your-project-role-name/botocore-session-1538120713"
}
ご覧のとおり、アカウントID 123456789012で確認されたとおり、Projectアカウントにいます。
このプロファイルを常にaws-cli
で使用する場合は、次のようにできます。
~ $ export AWS_DEFAULT_PROFILE=customer-project
~ $ aws sts get-caller-identity
... will be the same output as above, even without specifying --profile ...
詳細については、この投稿をチェックしてください: https://aws.nz/best-practice/cross-account-access-with-aws-cli/
また確認してください: