web-dev-qa-db-ja.com

AWSユーザーにキーを安全に提供しますか?

AWS IAMで新しいユーザーを作成するとき、管理者はユーザーの名前とそのユーザーのアクセス許可を設定します。ユーザーのパスワードとプログラムによるアクセスキー(プログラムによるアクセスが許可されている場合)が生成され、管理者に表示されます。

以下に示すユーザーが正常に作成されました。ユーザーのセキュリティ認証情報を表示してダウンロードできます。 AWSマネジメントコンソールにサインインするための手順をユーザーにメールで送信することもできます。これらの資格情報をダウンロードできるのはこれが最後です。ただし、新しい資格情報はいつでも作成できます。

これらのキーを新しいユーザーと共有する最良の方法は何ですか?

情報を共有する最良の方法は、使用しているプロセスを変更することです。パスワードを生成し、無数の安全な方法でユーザーに共有することができます。重要なのは、次回のログイン時にユーザーに自分のパスワードを変更させることです。

IAM Manage Console Access

この方法を使用すると、管理者はユーザーが初めてログインした後のユーザーのパスワードを知ることができません。

この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->アカウント設定でパスワードの有効期限を設定することを強くお勧めします。

1
kenlukas

これは、セットアップされているインフラストラクチャ/開発環境によって異なります。いくつかのことができます。

Hashicorp Vault のようなシステムをセットアップしている場合は、Vault内ですべてを実行できます。

別の可能な解決策は、ファイルレベルの暗号化を提供する ansible-vault です。暗号化されたファイルは、バージョン管理システムにチェックインできます。明らかに、管理者とAPIキーを受け取る必要があるユーザーとの間の共有秘密が必要です。

PGPを使用していますか?その後、管理者はPGP暗号化メールで資格情報をユーザーに送信できます。

0
mhr