第1回(前回まで)
この記事では、LambdaからJira REST APIを安全に呼び出すための準備作業をまとめます。
この記事で書くこと(第2回)
- Jira CloudでAPI Tokenを発行する方法
- Secrets ManagerにJira認証情報を登録する
- IAMロールに必要な最小権限
- SNSトピックを作成し、後でCloudWatch / Step Functionsから通知する準備
- Lambdaの実行環境がどう Secrets / SNSと連携するかを理解する
1. 今回のゴール
以下、事前準備ができれば次の第3回でLambdaの最小実装 → 起票成功までできます。
| 準備項目 | 内容 |
|---|---|
| 1. Jira API Token 発行 | Lambda から Jira を呼び出すため |
| 2. Secrets Manager のセットアップ | Jira 認証情報を安全に保管 |
| 3. Lambda ロール(IAM)の作成 | SecretsManager:GetSecretValue を許可 |
| 4. SNS Topic の作成 | CloudWatch/StepFunctions が通知 |
2.Jira Cloud : API Tokenの発行
LambdaからJiraにHTTP APIを叩くには、API Token + Basic認証を利用する
手順
3.トークン作成から任意の名前を入力、表示されたトークンをコピー(再表示できないため注意)


これをLambdaのdeploy packegeに含めるのはNG
API TokenをLambda環境変数に入れるのも推奨されない。
漏洩リスクからSecrets Managerを利用する。
3. Secrets Managerのセットアップ
登録するJSON(テンプレ)
AWS Secrets Manager → 「新しいシークレットを作成」 → シークレットタイプキー/ バリューを登録
ポイント
| キー名 | 説明 |
|---|---|
| JIRA_BASE_URL | 企業ごとの Jira ドメイン |
| JIRA_EMAIL | API Token に紐付くユーザ |
| JIRA_API_TOKEN | ↑で発行した Token |
| JIRA_PROJECT_KEY | チケットの作成先プロジェクト |
| JIRA_ISSUE_TYPE | "Incident" / "Task" など |
シークレット名の命名例
jira/poc
jira/dev
jira/prod
今回はjira/devとしている
- IAM:Lambda実行ロールの作成
LambdaがSecrets Managerを読むための最小限のIAM権限を付与
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": "arn:aws:secretsmanager:ap-northeast-1:<ACCOUNT_ID>:secret:jira/*"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}
ポイント
- Secrets ManagerのARNは必要に応じて厳格化
- LambdaからJiraへは外部アクセスなので別途VPCルールなどは不要
(デフォルト設定でインターネットに出られる)
5.SNS Topicの作成
トリガーとなるAWSリソースがエラーを発報した際にSNS Topicへ通知を送る
用のトピックを作成

6. curlでJira APIが動作することを確認
Lambdaを作る前に、APIが正常に動くかをローカルで先に確認
1. 環境変数のセット
# ➀ Jira サイト(ドメインのみ。https:// は付けない)
export JIRA_BASE_URL="XXXXX.atlassian.net"
# ➁ Atlassian アカウント(Jira にログインするときのメール)
export JIRA_EMAIL="<登録時のメールアドレス>"
# ➂ https://id.atlassian.com/manage-profile/security/api-tokens
# で発行した API トークン(Git等に絶対上げない)
export JIRA_API_TOKEN="(作ったAPIトークン)"
2. 疎通確認
# ➀ 認証付きで serverInfo を叩く
curl -s --http1.1 \
-u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
"https://$JIRA_BASE_URL/rest/api/3/serverInfo" \
| jq -r '.baseUrl'
→ サイトドメインが出力されること
# ➁ 課題作成(Issue 作成)の キーだけ 抜き出す
curl -s --http1.1 \
-u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
"https://$JIRA_BASE_URL/rest/api/3/issue" \
-d '{
"fields": {
"project": {"key": "OPS"},
"summary": "Test from curl",
"issuetype": {"name": "Incident"}
}
}' | jq -r '.key'
→ キーが返ってくること
7. まとめ
この記事では、Lambda 実装に入る前の環境準備を整えました。
| 完了したこと | 理由 |
|---|---|
| ✔ Jira API Token 発行 | Jira REST API を叩くため |
| ✔ Secrets Manager 登録 | API Token を安全に保持 |
| ✔ IAM ロール作成 | Lambda が Secrets を取るため |
| ✔ SNS Topic 作成 | CloudWatch & StepFn 通知の受け口 |
次回(第3回):最小のLambdaでJira起票成功まで
- urllib3を使ったHTTPリクエスト基礎
- Secrets Managerの読み取り
- 最小のJira Issue Create Lambda
- Test Eventで実際に起票してみる




