From a173df8298c912ea587f02925afec0838150e6f8 Mon Sep 17 00:00:00 2001 From: "mori.k" Date: Thu, 3 Apr 2025 18:06:13 +0900 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E3=81=99=E3=82=8B=E3=82=A4?= =?UTF-8?q?=E3=83=A1=E3=83=BC=E3=82=B8=E3=82=92python:3.12-slim-bookworm?= =?UTF-8?q?=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/sap-data-decrypt/Dockerfile | 9 +- lambda/sap-data-decrypt/Pipfile | 3 +- lambda/sap-data-decrypt/Pipfile.lock | 193 ++++++++++++++++++-- lambda/sap-data-decrypt/datadecrypt/main.py | 2 +- 4 files changed, 188 insertions(+), 19 deletions(-) diff --git a/lambda/sap-data-decrypt/Dockerfile b/lambda/sap-data-decrypt/Dockerfile index 1eca4f13..e3494644 100644 --- a/lambda/sap-data-decrypt/Dockerfile +++ b/lambda/sap-data-decrypt/Dockerfile @@ -1,5 +1,5 @@ # AWS公式のDockerイメージを利用 -FROM public.ecr.aws/lambda/python:3.12 +FROM python:3.12-slim-bookworm ENV TZ="Asia/Tokyo" @@ -9,13 +9,18 @@ ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 # 必要なファイルをイメージにコピー +WORKDIR /function COPY Pipfile Pipfile.lock ./ # ライブラリインストール -RUN pip install pipenv --no-cache-dir && \ +RUN apt update -y && \ + apt-get -y install gnupg2 && \ + pip install pipenv --no-cache-dir && \ pipenv install --system --deploy && \ pip uninstall -y pipenv virtualenv-clone virtualenv COPY datadecrypt ./ +# エントリーポイントの設定 +ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ] # lambdaハンドラを起動 CMD [ "main.handler" ] \ No newline at end of file diff --git a/lambda/sap-data-decrypt/Pipfile b/lambda/sap-data-decrypt/Pipfile index f453f956..2d43817d 100644 --- a/lambda/sap-data-decrypt/Pipfile +++ b/lambda/sap-data-decrypt/Pipfile @@ -5,7 +5,8 @@ name = "pypi" [packages] boto3 = "*" -python-gnupg = "*" +gnupg = "*" +awslambdaric = "*" [dev-packages] autopep8 = "*" diff --git a/lambda/sap-data-decrypt/Pipfile.lock b/lambda/sap-data-decrypt/Pipfile.lock index 358db18e..bf7a5385 100644 --- a/lambda/sap-data-decrypt/Pipfile.lock +++ b/lambda/sap-data-decrypt/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "0bd591ace1d9e95b391391ab45004a3a5cf50cfd2f73557edf8f9747e374debd" + "sha256": "afaca3f20921117c2d3f52827ed27f98a78c920c885de56a0f97d86ee2260f77" }, "pipfile-spec": 6, "requires": { @@ -16,22 +16,53 @@ ] }, "default": { + "awslambdaric": { + "hashes": [ + "sha256:130dc7801da6356948d9bf269a27206345de90ed67d495c3f6812373f368af96", + "sha256:18b595c696a206e13d4965e7d37750662619b04b93db60ba1787c2874710f448", + "sha256:20f64d9ad7e7250b63d955098fe7f75bd14a5ba9616f6695c6b8dbf7c0f57132", + "sha256:3638d89653940e87022e594e7e4c0c89c2803585d97e60d53d305915356ae72e", + "sha256:56d67c6ded6d415c573ece9281e21f141348f16336a015824a6c4ee549303376", + "sha256:670e3156be9e7909fd972872105c1b74adc044827b4a481af896e1f70aba5888", + "sha256:6fedfceaf3b0ec094df3842d0b12b5546038d6d499c44d79f4491481d1270808", + "sha256:7a819855cbd6fdc0496df94c0338c1a77529b217c375d347fb87d6ae9dbf48db", + "sha256:99d020cb09864d4d071ed17bb197faca49791e2a755ea56b692792ce39d84365", + "sha256:9eac139f718e6506f65ff37f87d7b1bda14f6831c1c5406e78ed84eeb6f74b96", + "sha256:b0261b0fd31b496a610b3400295e49e2843e1c52ef03503bce3348396dc71564", + "sha256:bca03397c2fbb610cfa9e88384fac88a5f204bf0355921ac8c8bc4b5a92beedd", + "sha256:c1279c761a0ac4f11fdde62d47132c72ee388207ceff948e383919cfe5279691", + "sha256:c69d3457db145c624d8334b860522db7aadf2c2139cbc02e883feba73306c700", + "sha256:d1d9f58f4b1f72179a3cde39cef1ce9bc2416978c63871472d2708e2101ffbef", + "sha256:d502da11d3c7b094cf44824c7f44fbce724a537c8520ca593e955e6cb0551eaa", + "sha256:e6c819458ad73fa20f53bb850fbc57c292acbea31b9dbba7bd2fe101d1dc9fa2" + ], + "index": "pypi", + "markers": "python_version >= '3.9'", + "version": "==3.0.2" + }, "boto3": { "hashes": [ - "sha256:00a025c621198508dc20c45224baaa7bd2a695323d999cce08b0d4deab5ada6f", - "sha256:23e9cbad028ef3723567f4556411ee8d0f732594316b4c78c174a03ba3ca3159" + "sha256:77ff13723ad5b836a565c382610c3994e14ce643144dc9c604bfe1efb3213739", + "sha256:78fb57556c2337e087d2eda419ee371b52843a2420861114413791113efeabe2" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==1.37.25" + "version": "==1.37.26" }, "botocore": { "hashes": [ - "sha256:6f8cefd769df170809816d66bde2e12c43f557ca6cf18c807922003319b52991", - "sha256:e35f10df0c3bcf42f4680439148462073fe6445d8938679f0576eb189fb034d7" + "sha256:7f6dc999e7a34c0917623aac67c9ea2389b741bb7babee1a88cf2cd04006ea7a", + "sha256:d499a617903cbcaae18380320125fa3a95cb625b613d746e6edc69c6f01f1326" ], "markers": "python_version >= '3.8'", - "version": "==1.37.25" + "version": "==1.37.26" + }, + "gnupg": { + "hashes": [ + "sha256:8db5a05c369dbc231dab4c98515ce828f2dffdc14f1534441a6c59b71c6d2031" + ], + "index": "pypi", + "version": "==2.3.1" }, "jmespath": { "hashes": [ @@ -41,6 +72,22 @@ "markers": "python_version >= '3.7'", "version": "==1.0.1" }, + "psutil": { + "hashes": [ + "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", + "sha256:1e744154a6580bc968a0195fd25e80432d3afec619daf145b9e5ba16cc1d688e", + "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", + "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", + "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", + "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", + "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", + "sha256:84df4eb63e16849689f76b1ffcb36db7b8de703d1bc1fe41773db487621b6c17", + "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", + "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99" + ], + "markers": "python_version >= '3.6'", + "version": "==7.0.0" + }, "python-dateutil": { "hashes": [ "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", @@ -49,14 +96,6 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==2.9.0.post0" }, - "python-gnupg": { - "hashes": [ - "sha256:40ce25cde9df29af91fe931ce9df3ce544e14a37f62b13ca878c897217b2de6c", - "sha256:f2fdb5fb29615c77c2743e1cb3d9314353a6e87b10c37d238d91ae1c6feae086" - ], - "index": "pypi", - "version": "==0.5.4" - }, "s3transfer": { "hashes": [ "sha256:559f161658e1cf0a911f45940552c696735f5c74e64362e515f333ebed87d679", @@ -65,6 +104,122 @@ "markers": "python_version >= '3.8'", "version": "==0.11.4" }, + "simplejson": { + "hashes": [ + "sha256:000602141d0bddfcff60ea6a6e97d5e10c9db6b17fd2d6c66199fa481b6214bb", + "sha256:03d7a426e416fe0d3337115f04164cd9427eb4256e843a6b8751cacf70abc832", + "sha256:03db8cb64154189a92a7786209f24e391644f3a3fa335658be2df2af1960b8d8", + "sha256:03ec618ed65caab48e81e3ed29586236a8e57daef792f1f3bb59504a7e98cd10", + "sha256:0821871404a537fd0e22eba240c74c0467c28af6cc435903eca394cfc74a0497", + "sha256:1190f9a3ce644fd50ec277ac4a98c0517f532cfebdcc4bd975c0979a9f05e1fb", + "sha256:15c7de4c88ab2fbcb8781a3b982ef883696736134e20b1210bca43fb42ff1acf", + "sha256:1b9fd15853b90aec3b1739f4471efbf1ac05066a2c7041bf8db821bb73cd2ddc", + "sha256:1bd6bfe5678d73fbd5328eea6a35216503796428fc47f1237432522febaf3a0c", + "sha256:272cc767826e924a6bd369ea3dbf18e166ded29059c7a4d64d21a9a22424b5b5", + "sha256:299b1007b8101d50d95bc0db1bf5c38dc372e85b504cf77f596462083ee77e3f", + "sha256:2b6436c48e64378fa844d8c9e58a5ed0352bbcfd4028369a9b46679b7ab79d2d", + "sha256:2e671dd62051129185d3a9a92c60101f56cbc174854a1a3dfb69114ebd9e1699", + "sha256:325b8c107253d3217e89d7b50c71015b5b31e2433e6c5bf38967b2f80630a8ca", + "sha256:339f407373325a36b7fd744b688ba5bae0666b5d340ec6d98aebc3014bf3d8ea", + "sha256:3466d2839fdc83e1af42e07b90bc8ff361c4e8796cd66722a40ba14e458faddd", + "sha256:391345b4157cc4e120027e013bd35c45e2c191e2bf48b8913af488cdc3b9243c", + "sha256:3c4f0a61cdc05550782ca4a2cdb311ea196c2e6be6b24a09bf71360ca8c3ca9b", + "sha256:3d7310172d5340febd258cb147f46aae30ad57c445f4d7e1ae8461c10aaf43b0", + "sha256:3e7963197d958fcf9e98b212b80977d56c022384621ff463d98afc3b6b1ce7e8", + "sha256:455a882ff3f97d810709f7b620007d4e0aca8da71d06fc5c18ba11daf1c4df49", + "sha256:463f1fca8fbf23d088e5850fdd0dd4d5faea8900a9f9680270bd98fd649814ca", + "sha256:4762e05577955312a4c6802f58dd02e040cc79ae59cda510aa1564d84449c102", + "sha256:489c3a43116082bad56795215786313832ba3991cca1f55838e52a553f451ab6", + "sha256:49d059b8363327eee3c94799dd96782314b2dbd7bcc293b4ad48db69d6f4d362", + "sha256:4a586ce4f78cec11f22fe55c5bee0f067e803aab9bad3441afe2181693b5ebb5", + "sha256:4a8e197e4cf6d42c2c57e7c52cd7c1e7b3e37c5911df1314fb393320131e2101", + "sha256:4a92e948bad8df7fa900ba2ba0667a98303f3db206cbaac574935c332838208e", + "sha256:51b41f284d603c4380732d7d619f8b34bd04bc4aa0ed0ed5f4ffd0539b14da44", + "sha256:5c0de368f3052a59a1acf21f8b2dd28686a9e4eba2da7efae7ed9554cb31e7bc", + "sha256:627d4486a1ea7edf1f66bb044ace1ce6b4c1698acd1b05353c97ba4864ea2e17", + "sha256:652d8eecbb9a3b6461b21ec7cf11fd0acbab144e45e600c817ecf18e4580b99e", + "sha256:69dd28d4ce38390ea4aaf212902712c0fd1093dc4c1ff67e09687c3c3e15a749", + "sha256:6a6dd11ee282937ad749da6f3b8d87952ad585b26e5edfa10da3ae2536c73078", + "sha256:6bd09c8c75666e7f62a33d2f1fb57f81da1fcbb19a9fe7d7910b5756e1dd6048", + "sha256:6c21f5c026ca633cfffcb6bc1fac2e99f65cb2b24657d3bef21aed9916cc3bbf", + "sha256:6d4f320c33277a5b715db5bf5b10dae10c19076bd6d66c2843e04bd12d1f1ea5", + "sha256:6dd3a1d5aca87bf947f3339b0f8e8e329f1badf548bdbff37fac63c17936da8e", + "sha256:6e18345c8dda5d699be8166b61f9d80aaee4545b709f1363f60813dc032dac53", + "sha256:6e6697a3067d281f01de0fe96fc7cba4ea870d96d7deb7bfcf85186d74456503", + "sha256:71b75d448fd0ceb2e7c90e72bb82c41f8462550d48529980bc0bab1d2495bfbb", + "sha256:71e849e7ceb2178344998cbe5ade101f1b329460243c79c27fbfc51c0447a7c3", + "sha256:74a1608f9e6e8c27a4008d70a54270868306d80ed48c9df7872f9f4b8ac87808", + "sha256:7551682b60bba3a9e2780742e101cf0a64250e76de7d09b1c4b0c8a7c7cc6834", + "sha256:76461ec929282dde4a08061071a47281ad939d0202dc4e63cdd135844e162fbc", + "sha256:78520f04b7548a5e476b5396c0847e066f1e0a4c0c5e920da1ad65e95f410b11", + "sha256:7ceed598e4bacbf5133fe7a418f7991bb2df0683f3ac11fbf9e36a2bc7aa4b85", + "sha256:7e9d73f46119240e4f4f07868241749d67d09873f40cb968d639aa9ccc488b86", + "sha256:7eaae2b88eb5da53caaffdfa50e2e12022553949b88c0df4f9a9663609373f72", + "sha256:87fc623d457173a0213bc9ca4e346b83c9d443f63ed5cca847fb0cacea3cfc95", + "sha256:884e6183d16b725e113b83a6fc0230152ab6627d4d36cb05c89c2c5bccfa7bc6", + "sha256:88a7baa8211089b9e58d78fbc1b0b322103f3f3d459ff16f03a36cece0d0fcf0", + "sha256:896a6c04d7861d507d800da7642479c3547060bf97419d9ef73d98ced8258766", + "sha256:8a6c1bbac39fa4a79f83cbf1df6ccd8ff7069582a9fd8db1e52cea073bc2c697", + "sha256:8bb98fdf318c05aefd08a92583bd6ee148e93c6756fb1befb7b2d5f27824be78", + "sha256:8c09948f1a486a89251ee3a67c9f8c969b379f6ffff1a6064b41fea3bce0a112", + "sha256:8d23b7f8d6b72319d6d55a0261089ff621ce87e54731c2d3de6a9bf7be5c028c", + "sha256:90b573693d1526bed576f6817e2a492eaaef68f088b57d7a9e83d122bbb49e51", + "sha256:9a74e70818818981294b8e6956ce3496c5e1bd4726ac864fae473197671f7b85", + "sha256:9c079606f461a6e950099167e21e13985147c8a24be8eea66c9ad68f73fad744", + "sha256:9daf8cdc7ee8a9e9f7a3b313ba0a003391857e90d0e82fbcd4d614aa05cb7c3b", + "sha256:9e8eacf6a3491bf76ea91a8d46726368a6be0eb94993f60b8583550baae9439e", + "sha256:9faceb68fba27ef17eda306e4cd97a7b4b14fdadca5fbb15790ba8b26ebeec0c", + "sha256:a2cc4f6486f9f515b62f5831ff1888886619b84fc837de68f26d919ba7bbdcbc", + "sha256:a3c2df555ee4016148fa192e2b9cd9e60bc1d40769366134882685e90aee2a1e", + "sha256:a7e15b716d09f318c8cda3e20f82fae81684ce3d3acd1d7770fa3007df1769de", + "sha256:a8011f1dd1d676befcd4d675ebdbfdbbefd3bf350052b956ba8c699fca7d8cef", + "sha256:ab19c2da8c043607bde4d4ef3a6b633e668a7d2e3d56f40a476a74c5ea71949f", + "sha256:ab980fcc446ab87ea0879edad41a5c28f2d86020014eb035cf5161e8de4474c6", + "sha256:ae6e637dc24f8fee332ed23dd070e81394138e42cd4fd9d0923e5045ba122e27", + "sha256:ae81e482476eaa088ef9d0120ae5345de924f23962c0c1e20abbdff597631f87", + "sha256:af8377a8af78226e82e3a4349efdde59ffa421ae88be67e18cef915e4023a595", + "sha256:b122a19b552b212fc3b5b96fc5ce92333d4a9ac0a800803e1f17ebb16dac4be5", + "sha256:b2578bedaedf6294415197b267d4ef678fea336dd78ee2a6d2f4b028e9d07be3", + "sha256:b63fdbab29dc3868d6f009a59797cefaba315fd43cd32ddd998ee1da28e50e29", + "sha256:bd9577ec1c8c3a43040e3787711e4c257c70035b7551a21854b5dec88dad09e1", + "sha256:c02f4868a3a46ffe284a51a88d134dc96feff6079a7115164885331a1ba8ed9f", + "sha256:c1336ba7bcb722ad487cd265701ff0583c0bb6de638364ca947bb84ecc0015d1", + "sha256:c6fdcc9debb711ddd2ad6d69f9386a3d9e8e253234bbb30513e0a7caa9510c51", + "sha256:c7edf279c1376f28bf41e916c015a2a08896597869d57d621f55b6a30c7e1e6d", + "sha256:c939a1e576bded47d7d03aa2afc2ae90b928b2cf1d9dc2070ceec51fd463f430", + "sha256:cbbd7b215ad4fc6f058b5dd4c26ee5c59f72e031dfda3ac183d7968a99e4ca3a", + "sha256:cd2cdead1d3197f0ff43373cf4730213420523ba48697743e135e26f3d179f38", + "sha256:cda5c32a98f392909088111ecec23f2b0d39346ceae1a0fea23ab2d1f84ec21d", + "sha256:ceab2ce2acdc7fbaa433a93006758db6ba9a659e80c4faa13b80b9d2318e9b17", + "sha256:d34d04bf90b4cea7c22d8b19091633908f14a096caa301b24c2f3d85b5068fb8", + "sha256:d492ed8e92f3a9f9be829205f44b1d0a89af6582f0cf43e0d129fa477b93fe0c", + "sha256:d8853c269a4c5146ddca4aa7c70e631795e9d11239d5fedb1c6bbc91ffdebcac", + "sha256:d9202b9de38f12e99a40addd1a8d508a13c77f46d87ab1f9095f154667f4fe81", + "sha256:dfe7a9da5fd2a3499436cd350f31539e0a6ded5da6b5b3d422df016444d65e43", + "sha256:e041add470e8f8535cc05509485eb7205729a84441f03b25cde80ad48823792e", + "sha256:e25b2a0c396f3b84fb89573d07b0e1846ed563eb364f2ea8230ca92b8a8cb786", + "sha256:e39eaa57c7757daa25bcd21f976c46be443b73dd6c3da47fe5ce7b7048ccefe2", + "sha256:e580aa65d5f6c3bf41b9b4afe74be5d5ddba9576701c107c772d936ea2b5043a", + "sha256:e64139b4ec4f1f24c142ff7dcafe55a22b811a74d86d66560c8815687143037d", + "sha256:e66712b17d8425bb7ff8968d4c7c7fd5a2dd7bd63728b28356223c000dd2f91f", + "sha256:e836fb88902799eac8debc2b642300748f4860a197fa3d9ea502112b6bb8e142", + "sha256:e91703a4c5fec53e36875ae426ad785f4120bd1d93b65bed4752eeccd1789e0c", + "sha256:e975aac6a5acd8b510eba58d5591e10a03e3d16c1cf8a8624ca177491f7230f0", + "sha256:ec6a1e0a7aff76f0e008bebfa950188b9c50b58c1885d898145f48fc8e189a56", + "sha256:ed6a17fd397f0e2b3ad668fc9e19253ed2e3875ad9086bd7f795c29a3223f4a1", + "sha256:ede69c765e9901861ad7c6139023b7b7d5807c48a2539d817b4ab40018002d5f", + "sha256:eea7e2b7d858f6fdfbf0fe3cb846d6bd8a45446865bc09960e51f3d473c2271b", + "sha256:efd3bc6c6b17e3d4620eb6be5196f0d1c08b6ce7c3101fa8e292b79e0908944b", + "sha256:f31c4a3a7ab18467ee73a27f3e59158255d1520f3aad74315edde7a940f1be23", + "sha256:f4bd49ecde87b0fe9f55cc971449a32832bca9910821f7072bbfae1155eaa007", + "sha256:f5272b5866b259fe6c33c4a8c5073bf8b359c3c97b70c298a2f09a69b52c7c41", + "sha256:f5aee2a4cb6b146bd17333ac623610f069f34e8f31d2f4f0c1a2186e50c594f0", + "sha256:f924b485537b640dc69434565463fd6fc0c68c65a8c6e01a823dd26c9983cf79", + "sha256:fc0f523ce923e7f38eb67804bc80e0a028c76d7868500aa3f59225574b5d0453" + ], + "markers": "python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2'", + "version": "==3.20.1" + }, "six": { "hashes": [ "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", @@ -73,6 +228,14 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.17.0" }, + "snapshot-restore-py": { + "hashes": [ + "sha256:38f99e696793790f54658e71c68c7a8a40cea877c81232b5052383b1301aceba", + "sha256:4d27f82fb6f09968f422501e9c3c2dea48a46cd19dc798eb7d6cbc57523c8004" + ], + "markers": "python_version >= '3.9'", + "version": "==1.0.0" + }, "urllib3": { "hashes": [ "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", diff --git a/lambda/sap-data-decrypt/datadecrypt/main.py b/lambda/sap-data-decrypt/datadecrypt/main.py index 836f7c18..ec525e9a 100644 --- a/lambda/sap-data-decrypt/datadecrypt/main.py +++ b/lambda/sap-data-decrypt/datadecrypt/main.py @@ -96,7 +96,7 @@ def handler(event, context): # ⑤ 「③」で読み込んだ秘密鍵ファイルをPGPライブラリにインポートを行う try: logger.info('I-05-01 秘密鍵ファイルインポート') - gpg = gnupg.GPG(gnupghome=PATH_TEMP) + gpg = gnupg.GPG(gnupghome=PATH_TEMP, gpgbinary="/usr/bin/gpg", verbose=True) with open(PATH_TEMP_PRIVATE_KEY) as key_file: gpg.import_keys(key_file.read()) logger.info('I-05-02 秘密鍵ファイルをインポートしました')