28
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS lambda でgoogle spread sheetを操作したくなったのでやってみた [その1]

Last updated at Posted at 2020-10-27

概要

表題そのままなのですが、google spread sheet って、なんかGAS(Google Apps Script)で操作する。
そんな固定観念があったんですが、今回はAWS lambda (Python)で操作したくなったのでやってみました。

別にGCPだけでも完結しますが、、、AWS慣れているので使いたかった。それだけです(笑)

構成

構成はシンプルです。

Untitled (1).png

GCP側で作成した認証情報は、暗号化してAWS Secrets Managerに保持します。
lambdaのコードに認証key直書きとかはやめたほうが吉...

準備

GCP側の認証を作成する

AWSでいうところのIAMのkeyを作成する感じです。

まずはGCPのコンソールに入って適当なプロジェクトを作成し

  • APIとサービス-> ライブラリ よりAPIの有効
  • APIとサービス-> 認証情報-> サービスアカウントの作成

を行います。


APIとサービス-> ライブラリ よりAPIの有効にする

スクリーンショット 2020-10-26 16-27-22.png


APIとサービス-> 認証情報-> サービスアカウントを作成
gcp.png

サービスアカウント名をきかれます。
大事なのはサービスアカウントIDです。
他人がみてわかりやすい名前にしましょうw

gcp2.png

2.3 は省略可能なので省略。
※細かいアクセス制限とかしたい方は設定してください。

スクリーンショット 2020-10-26 14-11-33.png

これが完了すると、サービスアカウントの箇所にメールアドレスみたいのができるので編集をおします。

gcp3.png

編集の中から鍵を追加とあるので押すとjsonかP12かと選択がでてくるので、みんな大好きjsonを選択すると
ローカルにjsonがダウンロードされます。 これで認証keyの作成完了です。
(これがAWSいうcredential.jsonですね)

[注意!!]これが漏れると外部からアクセスされる可能性があるのでgithubとかに置くのはやめましょうね!

スクリーンショット 2020-10-26 14-23-05.png


更新するスプレットシートの準備

先程のサービスアカウントID(メアドっぽくなっているやつ)を共有するユーザとして設定します。

スクリーンショット 2020-10-26 15-56-10.png


AWS 側の準備

AWS Secrets Manager

keyを保管する場所を作成しましょう。 
cloudformationで自動で作成することもできますが、ここでは手で作成しています。

スクリーンショット 2020-10-26 14-34-12.png

※ちなみにsystem manager のキーストアでも同じようなkeyの保管ができますが、
 今回はAWS Secrets Managerです。

まずは枠だけ作るの シークレットの種類を選択 はその他のシークレットを選びましょう。
値は適当に入れておいてください(ここではsampla: test)と入れています。

スクリーンショット 2020-10-26 14-37-50.png

スクリーンショット 2020-10-26 14-38-34.png

それでは先程のkey(今はgoogle_key.jsonにリネームしています)をbase64に変換して
AWS cliをつかってkeyに登録していきます。
(※profileの向き先に注意してくださいw)


$ cat google_key.json | base64 > base64.json
aws secretsmanager update-secret --secret-id "/google/access_key" --secret-binary fileb://base64.json

--secret-binaryを指定することによって暗号化された状態で登録することになります。
※これを指定するとコンソールから値が見れないという利点があります。
もっとセキュリティを強化したい方はKMSを利用ください。

こんな感じでGCP側とAWS側の準備が完成です。

次回:
AWS lambda でgoogle spread sheetを操作したくなったのでやってみた (その2)

次回はlambda側の作成をしていきます!!!
では、良いAWSライフを!!

28
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?