AWS S3バケットを使用して他のクライアントへのファイル転送を検討しているクライアントがいます。そのデータには、ある種の保護されたデータが含まれている場合があります。
ログイン/接続に2要素またはMFAを使用するようにS3を設定したいのですが。
多くのAWSドキュメントを見て、MFAを使用してS3データが削除されないようにする方法を見つけました... AWSアカウント自体をMFAで保護する方法を見つけましたが、これはS3にアクセスするクライアント向けではありません。
S3は長く複雑なランダム文字列であるアクセスIDと、より長い秘密鍵を使用していることがわかります。
ご質問
1。何らかの2要素認証を使用するようにS3を設定できますか?
2。アクセスIDはランダムであり、人の名前やその他のものに関連付けられていないため、2要素としてカウントされますか?
他に何か考えはありますか?
MFAは、ファイルの削除や変更を防ぐようには設計されていません。唯一の目標は、ユーザーの資格情報を盗むことをはるかに困難にすることです。
また、S3バケット(またはオブジェクト)のMFAをセットアップするのではなく、ユーザー用にセットアップします。そのユーザーへのアクセス許可は、ACLとポリシーによって指定されます。
したがって、「S3でMFAを有効にする」ことができます。ユーザーの作成、MFAの有効化、ポリシーの割り当て。ただし、署名付きURLはクライアントのニーズにより適しています。
何らかの2要素認証を使用するようにS3を設定できますか?
いいえ、S3には独自の認証がないためです。
アクセスIDはランダムであり、人の名前やその他のものに関連付けられていないため、2要素としてカウントされますか?
いいえ、「2要素認証」の要素は異なりますtypesもの;通常、2FAの場合、それはあなたが何かknow(パスワード、秘密鍵)であり、あなたが何かhave(ハードウェアOTPデバイス)です。多要素認証が非常に推奨される理由は、攻撃者がboth typesにアクセスするのが難しいためです-物理的な泥棒はあなたの電話またはキーフォブを盗むことができますが、パスワードを知らないため、リモートの攻撃者はパスワードまたは秘密鍵を盗むことができますが、OTPデバイスにアクセスすることはできません。
さらに、Amazonキー/秘密キーのペアは、AWS APIにアクセスするために必要なsoleものです(ユーザーの名前を知る必要はありません)。なので、これは2番目の要素であるだけでなく、only要素でもあります。
最初のステップとして、ほとんどの場合 S3バケットのバージョン管理 を有効にすることをお勧めします。これは古いバージョンのファイルを保存するため、ストレージコストが増加しますが、誤って重要なものを削除してしまった場合には、命の恩人になる可能性があります。
単一のAmazonアカウントで、サブアカウントを作成し、IAMで管理できます。これは通常、複数のユーザーに同じアカウントへの共有アクセスをすべて与えるのではなく、管理する方法です。 IAMでは、適切な policies を割り当てることにより、各ユーザーに最小限必要な権限を追加できます。したがって、クライアントが保護されたファイルを読み取ることができる必要があるが、それらに書き込む必要がない場合は、読み取り権限のみを与えることができます。したがって、資格情報の違反は攻撃者に読み取りアクセス権のみを与えます。同様に、削除せずに書き込みアクセスを提供できます。 S3権限をファイルパスでスコープすることもでき、一般に、必要なものを正確に対象とするための多くの柔軟性があります。
これはAWS S3で可能になりました。次のポリシーでは、アカウント1、2、3のユーザーがMFAでオブジェクトを配置および削除できます。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"AWS": [
"ACCOUNT-ONE-ID",
"ACCOUNT-TWO-ID",
"ACCOUNT-THREE-ID"
]},
"Action": [
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": ["arn:aws:s3:::ACCOUNT-A-BUCKET-NAME/*"],
"Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
}]
}
同様に、MFAを有効にする独自のポリシーを作成できます。