AWS IAMで新しいユーザーを作成するとき、管理者はユーザーの名前とそのユーザーのアクセス許可を設定します。ユーザーのパスワードとプログラムによるアクセスキー(プログラムによるアクセスが許可されている場合)が生成され、管理者に表示されます。
以下に示すユーザーが正常に作成されました。ユーザーのセキュリティ認証情報を表示してダウンロードできます。 AWSマネジメントコンソールにサインインするための手順をユーザーにメールで送信することもできます。これらの資格情報をダウンロードできるのはこれが最後です。ただし、新しい資格情報はいつでも作成できます。
これらのキーを新しいユーザーと共有する最良の方法は何ですか?
情報を共有する最良の方法は、使用しているプロセスを変更することです。パスワードを生成し、無数の安全な方法でユーザーに共有することができます。重要なのは、次回のログイン時にユーザーに自分のパスワードを変更させることです。
この方法を使用すると、管理者はユーザーが初めてログインした後のユーザーのパスワードを知ることができません。
この2番目の部分は、ユーザーが独自のAWSアクセスキーを生成できるようにすることです。次のポリシーでは、ユーザーが自分のパスワードとアクセスキーを管理できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:*AccessKey*",
"iam:*LoginProfile",
"iam:*SSHPublicKey*"
],
"Resource": "arn:aws:iam::0123456789AB:user/${aws:username}"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"iam:GetAccountPasswordPolicy",
"iam:GetAccountSummary",
"iam:ListAccount*",
"iam:ListUsers"
],
"Resource": "*"
}
]
}
AWS Lambdaを配置して、90日以上経過したアクセスキーを無効化/削除し、IAM->アカウント設定でパスワードの有効期限を設定することを強くお勧めします。
これは、セットアップされているインフラストラクチャ/開発環境によって異なります。いくつかのことができます。
Hashicorp Vault のようなシステムをセットアップしている場合は、Vault内ですべてを実行できます。
別の可能な解決策は、ファイルレベルの暗号化を提供する ansible-vault です。暗号化されたファイルは、バージョン管理システムにチェックインできます。明らかに、管理者とAPIキーを受け取る必要があるユーザーとの間の共有秘密が必要です。
PGPを使用していますか?その後、管理者はPGP暗号化メールで資格情報をユーザーに送信できます。