ablog

不器用で落着きのない技術者のメモ

bucket の検索結果:

S3 へのパブリックアクセスを一切禁止する

AWS

…ルの設定禁止 PutBucketPublicAccessBlock … バケットレベルの設定禁止 新規AWSアカウントを作成すると、デフォルトで S3 Block Public Access はアカウントレベルでは False、バケットレベルでは True*2。 意味 新規のパブリック ACL と、パブリックオブジェクトのアップロードをブロックする (推奨) バケットのACLで以下の設定がバケットレベル(左画像)でもオブジェクトレベル(右画像)でもできなくなる*3。 オブジェ…

文鎮化した S3 バケットを元に戻す

AWS

…pi delete-bucket-policy --bucket az-private rootアカウントのシークレットアクセスキー削除 ナビゲーションバー右上のアカウント名を選択し、[セキュリティ認証情報]を選択する。 [アクセスキー (アクセスキー ID とシークレットアクセスキー)]で[削除]をクリックし、シークレットアクセスキーを削除する。 参考 https://forums.aws.amazon.com/thread.jspa?threadID=271455 S3 …

QuickSight で Athena にクエリしようとすると Access Denied と怒られる

AWS

…n S3 (all buckets) (​ (すべてのバケット))] チェックボックスをオンにして、それらのバケットに対する Amazon QuickSight アクセス権限を編集します。[Choose Amazon S3 buckets ( バケットを選択)] で、Amazon QuickSight に対して使用可能にするバケットを選択してから、[Select buckets (バケットを選択)] を選択します。 Amazon Athena データベースがある場合は、[At…

Spark DataFrame の repartition メソッドは何をするものか

…e = "data-bucket" >>> dataset = "sh10" >>> in_path = "s3://{your_backet_name}/data/json/{dataset}/sales/*.gz".format(your_backet_name=your_backet_name, dataset=dataset) >>> out_path = "s3://{your_backet_name}/data/parquet_pyspark/{dataset}/…

CloudFormation で EMR クラスター作成時に Bootstrap Action を実行する

AWS

…(中略) CFnS3Bucket: Description: Specify an Amazon S3 template URL Type: String Default: cfnBucket20181124 (中略) EMRStack: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub https://s3-ap-northeast-1.amazonaws.com/${CFnS3Bucket}/em…

s3 cp でクロスアカウントでバケット間コピーする際のコピー元バケットに参照権限を付与するバケットポリシー

AWS

…rincipal": { "AWS": "arn:aws:iam::012345678901:root" }, "Action": [ "s3:List*", "s3:Get*" ], "Resource": [ "arn:aws:s3:::test-bucket-20181125", "arn:aws:s3:::test-bucket-20181125/*" ] } ] } 参考 ポリシーでのアクセス許可の指定 - Amazon Simple Storage Service

S3オブジェクトのバージョン一覧を表示する

AWS

…ersions --bucket az-test-bucket|jq -r '.Versions[].Key'|sort|uniq -c|perl -lane '$F[0] > 1 and print' 2 swingbench/data/gz/sh10/sales/test2.txt 3 swingbench/data/gz/sh10/sales/test.txt 参考 バケット内のオブジェクトのバージョン一覧を表示するには、[Show] を選択します。各オブジェクトバージ…

S3 バケットのデフォルト暗号化に使う CMK を KMS で生成したものから BYOK に変えてみる

AWS

…test make_bucket: kms-key-change-test デフォルト暗号化設定を行う $ aws s3api put-bucket-encryption --bucket kms-key-change-test --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KM…

S3のデフォルト暗号化キーはエイリアス名ではなくキーIDと紐付いてそう

AWS

…s3api get-bucket-encryption --bucket az-test-bucket1 { "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "KMSMasterKeyID": "arn:aws:kms:ap-northeast-1:123456789012:key/608781a9-cf79-4e35-98dd-7efa5a…

S3 のデフォルト暗号化キーに使っている BYOK した CMK を入れ替える

AWS

…tion-test-bucket make_bucket: kms-key-rotation-test-bucket 作成した S3 バケットのデフォルト暗号化キーに作成した CMK を指定する。 $ aws s3api put-bucket-encryption --bucket kms-key-rotation-test-bucket --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSi…

S3バケットの Static website hosting が有効化されたら CWE -> Lambda で自動的に無効化する

AWS

…: S3DeleteBucketWebsite ランタイム: Python 2.7 ロール: S3FullAccess 関数コード import boto3 s3 = boto3.client('s3') def lambda_handler(event, context): print( 'event: ', event ) bucket_name=event['detail']['requestParameters']['bucketName'] print( bucke…

Athena で CloudTrail のイベントを集計する

AWS

…s.com HeadBucket 10675 s3.amazonaws.com UploadPartCopy 10362 ec2.amazonaws.com DescribeNetworkInterfaces 9756 athena.amazonaws.com GetQueryExecution 9040 s3.amazonaws.com CopyObject 6353 ssm.amazonaws.com UpdateInstanceInformation 5658 ssm.…

Parquet

AWS

… 2203 HeadBucket 176 ListObjects 43 PutObject 2 select count(year) from amazon_reviews_parquet select eventname, count(eventname) as apicall_count from default.cloudtrail_logs_cloudtrail_123456789012_do_not_delete where eventsource = 's3.am…

「AWS Cloudtrail Logs を AWS Glue と Amazon Quicksight 使って可視化する」をやってみた

AWS

…context): bucket = event['Records'][0]['s3']['bucket']['name'] key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key'].encode('utf8')) print(bucket) print(key) try: newKey = 'flatfiles/' + key.replace("/", "") client.download_f…

「AWS Glue と Amazon S3 を使用してデータレイクの基礎を構築する」を試してみた

AWS

…tObject {"bucketName":"nytaxi-parquet","key":"_temporary/0_$folder$"} 2018-09-12T03:19:11Z PutObject {"bucketName":"nytaxi-parquet","key":"_temporary_$folder$"} 2018-09-12T03:19:11Z ListObjects {"list-type":"2","bucketName":"nytaxi-parquet"…

VPCフローログのサイズがどの程度になるか

AWS

… to an S3 bucket S3 bucket ARN: 作成したS3バケットの ARN を入力 EC2インスタンス作成 2つのVPCに1つずつEC2インスタンスを作成する(今回は m4.10xlarge を利用した)。 iperf をインストールする 2つの別のVPCにEC2インスタンス(Amazon Linux)を作成する。 EC2インスタンスに iperf をインストールする。 $ sudo yum -y install git gcc $ git clone h…

AD連携でAWSアカウントにログインし別アカウントでスイッチロールしたら CloudTrail にどう記録されるか

AWS

…" } CreateBucket { "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "A***************MOF2Y:Administrator", "arn": "arn:aws:sts::200000000000:assumed-role/az2AdminRole/Administrator", "accountId": "200000000000…

EMR のブートストラップアクションはマスター・コア・タスクノードで実行される

AWS

…th=s3://mybucket/filename",Args=[arg1,arg2] 追加のソフトウェアをインストールするためのブートストラップアクションの作成 - Amazon EMR --bootstrap-actions (list) Specifies a list of bootstrap actions to run on each EC2 instance when a cluster is created. Bootstrap actions run on …

S3バケットがPublic公開されたら Config -> CWE -> Lambda で自動的に Private に戻す

AWS

…ジドルール "s3-bucket-public-read-prohibited" で検知して CloudWatch Events 経由で Lambda を起動して Private に戻す検証をしてみたメモ。 設定 AWS Config のマネージドルールを追加する AWSマネジメントコンソールにログインする。 [Config]-[ルール]を選択し、[ルールの追加]をクリックし、[s3-bucket-public-read-prohibited]を選択し、[保存]をクリックする…

AWS Organizations の Service Control Policy でアカウントの S3 Static website hosting の有効化を禁止する

AWS

… 設定 s3:PutBucketWebsite を Deny する SCP を作成する。 Organization Unit に SCP をアタッチする。 ポリシーエディタで確認すると以下の通り。 { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1535859242000", "Effect": "Deny", "Action": [ "s3:PutBucketWebsite" ], "Resource": [ …

CloudTrail の S3 オブジェクトレベルでロギングできる項目

AWS

…est.txt","bucketName":"az-test-src","key":"test.txt"} [{arn=arn:aws:s3:::az-test-src/test.txt, accountid=null, type=AWS::S3::Object}, {arn=arn:aws:s3:::az-test-src, accountid=012345678901, type=AWS::S3::Bucket}, {arn=arn:aws:s3:::az-test-ds…

クロスアカウントのS3バケット間コピーを行うとコピー実行ユーザーが所有者になる

AWS

…ect-acl --bucket az-test-src --key test.txt { "Owner": { "DisplayName": "azekatsu", ★コピー元アカウント "ID": "...." }, "Grants": [ { "Grantee": { "Type": "CanonicalUser", "DisplayName": "azekatsu", "ID": "..." }, "Permission": "FULL_CONTROL" } ] } …

別アカウントのS3バケットに対して Athena でクエリを実行する

AWS

… [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::az-swingbench", "arn:aws:s3:::az-swingbench…

AWS SDK for Python を使ってみる

…e('s3') mybucket = s3.Bucket('az-test-datalake') for object in mybucket.objects.all(): print(object) 実行する $ python s3_ls.py s3.ObjectSummary(bucket_name='az-test-datalake', key=u'system01/') s3.ObjectSummary(bucket_name='az-test-datalake', …

クロスアカウントで s3 cp する

AWS

…7", "Statement": [ { "Sid": "Sample", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::012345678901:root" }, "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::az-test-src", "arn:aws:s3:::az-test-src/*" ] } ] }

EMRからS3にアクセス時のAPI発行回数を調べる

AWS

…pi create-bucket --bucket az-s3-trail-log \ --create-bucket-configuration LocationConstraint=ap-northeast-1 バケットポリシーを付与する。 $ cat <<EOF > policy.json { "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20180211", "Effect…

S3イベント通知はオブジェクト作成完了後に通知される

AWS

…s3api put-bucket-notification-configuration --bucket "az-test-2018" --notification-configuration file://topic_config.json SNSに通知されるタイミングを確認する ファイルを作成する $ perl -le 'print for 1..100000000' > test.txt $ ls -lh test.txt -rw-r--r-- 1 azekyohe 1…

S3 イベント通知はオブジェクト作成完了後に通知されることを確認する

AWS

…s3api put-bucket-notification-configuration --bucket "az-test-2018" --notification-configuration file://topic_config.json 試してみる ファイルを作成する $ perl -le 'print for 1..100000000' > test.txt $ ls -lh test.txt -rw-r--r-- 1 azekyohe 1896053708 848M…

コアノードから EMRFS への読み書きしているところを strace でシステムコールトレースを取得する

…("s3://az-bucket/input.txt") scala> val counts = textFile.flatMap(line => line.split(" ")) .map(word => (word, 1)) .reduceByKey(_ + _) scala> textFile.saveAsTextFile("s3://az-bucket/output.txt") コアノードでTCPセッションを調べる。 sudo lsof -i:443 sudo net…

AWS CLI 集

AWS

…heia-from-bucket/logs/ s3://yoheia-to-bucket/logs/ --recursive コピーを試したメモ FROM=コピー元S3バケット名 TO=コピー先S3バケット名 aws s3 mb s3://$(FROM} aws s3 mb s3://${TO} time dd if=/dev/urandom of=1gb.dat bs=1M count=10240 aws s3 cp 10gb.dat s3://$(FROM}/1gb.da…