Amazon S3バケットでMFA Deleteを有効にする
2021/08/23
バージョニングが有効なバケットでバージョン削除でMFA Deleteを有効にして、整合性を守ろうという機能です。
目次
設定をIAMユーザーで実行してみる
バケットにバージョニングとMFA Deleteを有効にできるのは、ルートユーザーだけとのことです。
AWS管理ポリシー AmazonS3FullAccessをアタッチしたユーザーで試してみました。
1 2 3 4 5 6 7 |
aws s3api put-bucket-versioning \ --bucket mfa-delete-test-yamashita \ --versioning-configuration Status=Enabled,MFADelete=Enabled \ --mfa "arn:aws:iam::123456789012:mfa/mfa-test-user 581922" An error occurred (AccessDenied) when calling the PutBucketVersioning operation: This operation may only be performed by the bucket owner |
バケットのオーナーしかだめですよ。
というようなメッセージです。
ルートユーザーで実行する
おとなしくルートユーザーで実行しました。
いやですがアクセスキーIDとシークレットアクセスキーを発行しました。
そしてコマンドを実行しました。
1 2 3 4 5 |
aws s3api put-bucket-versioning \ --bucket mfa-delete-test-yamashita \ --versioning-configuration Status=Enabled,MFADelete=Enabled \ --mfa "arn:aws:iam::123456789012:mfa/root-account-mfa-device 678391" |
特にレスポンスはありませんでしたが、設定できました。
バージョンを削除してみる
はい。
もちろんマネジメントコンソールからは削除できませんでした。
1 2 3 4 5 6 7 |
aws s3api delete-object \ --bucket mfa-delete-test-yamashita \ --key mfa-delete-1.png \ --version-id H.zY2NUm0kQ0mIacJGFR5.K2EOHFE0q7 An error occurred (AccessDenied) when calling the DeleteObject operation: Mfa Authentication must be used for this request |
CLIでMFAなしで実行するとMFAが必要というメッセージでした。
1 2 3 4 5 6 7 8 9 10 |
aws s3api delete-object \ --bucket mfa-delete-test-yamashita \ --key mfa-delete-1.png \ --version-id H.zY2NUm0kQ0mIacJGFR5.K2EOHFE0q7 \ --mfa "arn:aws:iam::123456789012:mfa/root-account-mfa-device 678391" { "VersionId": "H.zY2NUm0kQ0mIacJGFR5.K2EOHFE0q7" } |
MFAありで実行したら削除が完了しました。
これ、削除もルートユーザーが実行しないといけないので、アクセスキーID、シークレットアクセスキーを持ち続けないといけないので辛いですね。
オブジェクトロックのほうがいいですね。
実際の運用では、削除メンテナンスするときだけアクセスキーを作成するか、普段無効化しておくかですかね。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
ヤマムギvol.26 Amazon DynamoDBのデモをしました
今日はAWS認定クラウドプラクティショナー対策本(緑本)に関係するデモをしました …
-
Amazon ECS Workshop for AWS Summit Online
INTRODUCTION TO AMAZON ECSに手順や必要なリンクがありま …
-
AWS CLIを使用したIAMロールの引き受けコマンドのメモ
よく忘れて調べるのでメモです。 公式のこちらAWS CLI を使用して IAM …
-
AWS DeepLensセットアップの儀
AWS DeepLensのセットアップを開始します。 AWS DeepLensを …
-
ENAが有効なEC2インスタンスの帯域幅をiperf3で確認してみた
同じ Amazon VPC 内で Amazon EC2 Linux インスタンス …
-
AWS Summit 2016 Tokyoに参加してきました (Day3)
飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …
-
AWS CodeCommit 認証情報ヘルパーをmacOSに設定しました
AWS CLI 認証情報ヘルパーを使用して Linux, macOS, or U …
-
VPCピア接続した先のVPCインターフェイスエンドポイントを使用する
VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …
-
RDSインスタンス作成時にEC2に接続設定するオプション
EC2 インスタンスと RDS データベース を自動的に接続するの動作を確認した …
-
「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Microservices × Serverless On AWS」で運営と懇親会LTをしてきました
「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …