アルパカログ

カスタマーサポート (CS) とエンジニアリングを掛け算したい CRE (Customer Reliability Engineer) が気になる技術や思ったことなど。

【Python】MFAアカウントでBoto3からAWS SDKを使う

AWS SDK for Python (Boto3) をMFA を設定したアカウントで下記のように普通に使おうとするとエラーになってしまいます。

import boto3

client = boto3.client('sagemaker-runtime')

MFA を設定しているアカウントでは、下記のように STS クライアントを使って認証情報を取得し、認証情報を使って開始したセッションに対してクライアントを作ってあげる必要があります。

import boto3
from boto3.session import Session

sts_client = boto3.client('sts')
sts_res = sts_client.get_session_token(DurationSeconds=3600, SerialNumber='MFA_DEVICE_ARN', TokenCode='111111')
cred = sts_res['Credentials']
session = Session(aws_access_key_id=cred['AccessKeyId'], aws_secret_access_key=cred['SecretAccessKey'], aws_session_token=cred['SessionToken'], region_name='ap-northeast-1')

client = session.client('sagemaker-runtime')

MFA_DEVICE_ARNAWSマネジメントコンソール、IAMのMFAの設定ページに記載されている MFAデバイスの ARN (arn:aws:iam::123456789:mfa/username のようなもの) を、TokenCode にはMFAデバイストークンを入力します。

おまけ: Python3 で簡単に数字をカンマ区切りにする

こんな簡単にできるの知らなかったので...

i = 1000
f'{i:,}'
# > '1,000'

こちらもあわせて読みたい

alpacat.hatenablog.com

alpacat.hatenablog.com

エンジニアリングマネージャーがモヤモヤしたとき読むブログなど

マネジメントには公式はなく、人と人の問題ですから、自分と相手の組み合わせの数だけ答えがあります。答えに至る過程も、一直線というのは稀で、悩んだり落ち込んだりしてようやく辿り着くのが常です。

何事もそうですが、上手く行っているときは問題なく、上手く行かなくなると途端に何もかもがダメになってしまうような感覚に襲われます。いや、本当は上手く行っていると思っているときには、すでに問題の芽はあって、気づかなかっただけなのでしょう。

暗中模索の時間が長くなると次第に心が弱ってきますが、弱りきる前に事態を打開するためのオプションを、私たちは持っておく必要があります。上司や身近な人に話すというのは当然に取る行動だと思いますので、今日はそれ以外を紹介します。

続きを読む

CX Night vol.2にて「CREと歩むこれからのCS」というタイトルで発表しました

CX Night vol.2 というイベントで「CREと歩むこれからのCS」というタイトルで発表しました。

speakerdeck.com

mercari.connpass.com

会場はとてもおしゃれなバーのようなお店で、100人くらいの参加者で満席になっていました。

私はCXというワードは普段使っていなくて、それなのに自分が話しても良いのかなと思っていましたが、登壇後には数人の方からお話を聞けて良かったと言っていただいたので、ためになる話ができて良かったと思いました。

KPIやNPSに関する補足

パネルディスカッションや質疑応答ではKPIやNPSに関するテーマが多かった印象です。

実は私はNPSに対しては懐疑的な立場で、パネルのときにはまとめきれなかったので、理由について少し補足しておきたいと思います。

続きを読む

Bug Shooting Challenge に参加したみなさんへ

第1回 Bug Shooting Challenge に参加くださりありがとうございました。

後半戦はずっと集中していたのでかなり疲れたのではないでしょうか?

おつかれさまでした。

BSCのオフィシャルな開催レポートは後日掲載されると思うので、熱戦の様子などはそちらに任せるとして、私からはBSCの経験を今後のみなさんの就職活動に活かすために、こんなことを考えてみてはいかがでしょう?というのを少しだけ書いてみたいと思います。

続きを読む

【Python3】パイプありのシェルコマンドを実行する

Python からシェルコマンドを実行するには subprocess モジュールを使うのが定石かと思います。

パイプありのシェルコマンドの実行方法を調べると、たいてい shell=True として 'command1 | command2' のような文字列を渡す例がよく出てきます。

しかし、この方法にはセキュリティで考慮すべき点があることを忘れてはなりません。

では shell=False で実行するにはどのように書けば良いでしょうか?

続きを読む

【iOS】ショートカットを使って定型メールを3タップで送信する

突然の電車遅延。混雑する車内やホームで遅刻連絡のメールを作るのは結構大変なことです。

そこで今日は iOSショートカットアプリを使って、遅刻連絡などの定型メールをたったの3タップで作成・送信する方法をご紹介します。

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

続きを読む

Engineering Manager Meetup #2に参加しました

Engineering Manager Meetup #2という、エンジニアリングマネージャー(EM)や、エンジニアリングマネジメントに興味がある人が集まり、関心のあるテーマについて話す会に参加しました。

続きを読む