- 1. [その4] HashiCorp Vault Secrets で マルチプロバイダー下での統合シークレット管理について
- 2. [その3] Terraform Cloud Private Registory サブモジュール使ってみた
- 3. IAMポリシーのCondition要素について
- 4. [AWS #25] AWS Certificate Manager (ACM)
- 5. VScodeでAWSのLightSailに接続しようとしたら少しハマった件
- 6. AWS Step Functionsの実行結果をSlackへ通知する
- 7. ざっくりぬるーくAWSとGoogle Cloudサービス対照表
- 8. 今日の晩御飯はAIに考えてもらう。
- 9. Bumblebee による画像分類を Amazon SageMaker Serverless でサーバレスサービス化する
- 10. [その5] Terraform Cloud で別ワークスペースのoutputの値を参照する
- 11. 【Amazon Connect】携帯電話宛ての発信制限を解除する方法(2024年9月時点)
- 12. 新卒のIT未経験がRDSをPrivateLinkでつなげる際につまずいたこと
- 13. [その2] Terraform Cloud Private Registory で モジュールを管理
- 14. [その1] Terraform Cloud 触ってみた
- 15. AWS CDKをクローンし、AWS最新情報を生成AIを利用しslackで効率的にキャッチアップ(突貫でコードのみ)
- 16. 【AWS】S3のアクセス制御【SAA-C03】
- 17. AWS Kinesis系サービスについて
- 18. AWS ControlTower⑧Access Analyzer外部アクセス・未使用アクセス
- 19. (小ネタ) [CloudWatch Logs Insights] LogStream単位で、FluentBitによる構造化ログの必要情報のみを一覧出力
- 20. 【AWS】機械学習系サービスまとめ【SAA-C03】
[その4] HashiCorp Vault Secrets で マルチプロバイダー下での統合シークレット管理について
## これは何?
Vault Secrets + Terraform Cloud でシークレット管理してみました。## Vault Secrets とは?
[Vault Secrets](https://developer.hashicorp.com/hcp/docs/vault-secrets) とは、マルチプロバイダーにおけるシークレットを統合管理する機能になります。
以下の画像のように複数のプロバイダーをVault Secretsで統合的に管理することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/2099e46b-7fd5-fdb9-0f2a-9c3579096955.png)また、登録するシークレットの種類として、
– パスワード
– API トークン
– アクセスキーが挙げられます。
## AWS + Vault でシークレット同期
最初にHashicorp Cloud からVault Secretsアプリケーションを作成します。
[C
[その3] Terraform Cloud Private Registory サブモジュール使ってみた
## これは何?
Terraform Cloud のサブモジュールの呼び出しについて解説します。## サブモジュールについて
[前回](https://qiita.com/atw0_0w/items/58812c0baf1a0000b757)、Private Registryを登録して、メインモジュールを呼び出すことができました。
その際、プライベートレジストリから呼びだす際はsource句の部分のような内容になります。“`hcl
# メインモジュールの呼び出し
module “network-templates” {
source = “app.terraform.io/atsuw0w-test-terraform/network-templates/aws”
version = “1.0.0”
}
“`上記のモジュールですが、サブモジュールを複数作成し呼び出すことも可能です。
例えば、VPCネットワークをメインモジュールと定義し、セキュリティグループやVPCエンドポイントについてはサブモジュールから呼び出すことが可能です。
(メインとしては作成したく
IAMポリシーのCondition要素について
AWSのセキュリティ設定において、IAMポリシーはアクセス制御の要となります。特にコンディション要素(Condition element)を活用することで、より柔軟で詳細なアクセス制御が可能になります。本記事では、IAMポリシーのコンディション要素についてわかりやすく解説します。
## コンディション要素とは?
コンディション要素は、IAMポリシー内でアクセス許可を付与または拒否する際に、追加の条件を指定するための要素です。
これにより、特定の状況下でのみアクションを許可または拒否するなど、アクセス制御をより細かく設定できます。## コンディション要素の主な特徴
• 柔軟なアクセス制御:リクエストの属性(IPアドレス、日時、認証方法など)に基づいてアクセスを制限できます。
• キーと値の組み合わせ:条件キー、条件演算子、条件値を組み合わせて条件を定義します。
• 複数の条件の組み合わせ:AND条件やOR条件を使って、複雑な条件を設定できます。## コンディション要素の構造
IAMポリシー内でのコンディション要素は、以下のように記述します。“`
{
“Versi
[AWS #25] AWS Certificate Manager (ACM)
## はじめに
こんにちは
今回はネットワーク分野である **「AWS Certificate Manager」** について紹介したいと思います。
:upside_down:AWSでは ACM(AWS Certificate Manager)を活用することでより簡単にSSL/TLS証明書を設定・運用ができます。仕組みについて一緒に見ていきましょう## AWS Certificate Manager (ACM)
:upside_down: **ACM(AWS Certificate Manager)** とは、AWS内で**SSL証明書の発行**や発行したSSL証明書の **自動更新**ができるサービスです。「プライベート認証機関サービス」を利用する場合を除いてACMの利用には料金が発生しません。そのため、証明書を発行や更新の費用を支払うことなくAWS内で運用しているWebサイトやサービスな
VScodeでAWSのLightSailに接続しようとしたら少しハマった件
:heavy_check_mark: AWSのLishtSailで立てたサーバにVSCodeのプラグイン「Remote – SSH」で接続しようとしたらちょっとハマり掛けたのでメモ
:bell:LightSailのサーバの立て方とか、VSCodeのプラグインの入れ方は今回は対象外
# 結論
LightSailからダウンロードしてローカルに保存していたSSHキーの権限が過剰だったっぽい# 事象
VSCodeの「Remote – SSH」でLightSailにログインしようとするとエラーになる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821966/14e5ce8b-537e-3707-0860-11a7244f523f.png)# 原因
SSHキーの権限。
どうやらSSHキーは権限の範囲が広すぎるとセキュリティ上の理由で接続を拒否するらしい。# 対処
PowerShellからSSHキーの権限を適切なものに変更
“` PowerShell
icacls “{SSHキー
AWS Step Functionsの実行結果をSlackへ通知する
# はじめに
AWS Step Functionsの実行結果をSlackへ通知する手順について、以下の記事では、Step Functionsの実行結果を取得し、Slackに通知する方法を紹介します。この記事では、SNS(Simple Notification Service)とAWS Lambdaを使ってStep Functionsの実行結果をトリガーし、Slackに通知を送信する流れを説明します。# 構成
![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1065841/9b1ef79f-827b-10b4-3062-575ed7ba49fa.png)# 目次
1. [SlackのWebhookURLを取得](#SlackのWebhookURLを取得)
1. [SNSトピックの作成](#SNSトピックの作成)
1. [StepFunctionsの実行結果をSNSへ通知する設定
ざっくりぬるーくAWSとGoogle Cloudサービス対照表
## :sunny:はじめに
皆さん「**Google Cloud**」ご存じでしょうか。
今は「GCP」ではなく「**Google Cloud**」と呼ぶそうですよ。「あぁGCPですね」とイキって恥かきました:flushed:。
さて、そんな私はクラウドといえばAWSのちょこっとした知識しか持ち合わせておりません。
そのAWS専用機の私が、最近訳あってGoogle Cloudの案件に携わることが決まり、急ピッチで基本的な知識だけでも!と、頭に詰め込んでいるところです。## :pencil2:かるく勉強した結果
分かってきたのは、「一から実践レベルまで知識をつけるのは無理!時間が足りない!」と、いうことでした。
ですが、軸になる思想や得手・不得手の違いはあれど、クラウドのメリットやデメリットは共通ですし、ユースケースも似通っているということもわかってきました。なので、AWSの**コレ**はGoogle Cloudの**アレ**!といった覚え方で何とか乗り切ろうと思い、私なりにサービスの対照表を準備しました。
細かく言えば違うんでしょうが、まぁやりたいことはほぼ一緒だろう。くら
今日の晩御飯はAIに考えてもらう。
# はじめに
本記事はAngel Dojo カレンダーの21日目の記事です!https://qiita.com/organizations/2024-angel-dojo
# 目標
本記事を作成するにあたり、下記を目標にしました。
**・AngelDojoで身に着けた技術のアウトプットをすること。**:::note info
身に着けたスキル(初めて触れた技術)
・AWS Amplify
・Amazon Bedrock
・AWS Lambda
・AWS AppSync
・React
・TypeScript
・Python(Lambda)
:::**・最新のAI技術に触れること。**
:::note info
今回利用するAI(Bedrock)のモデル
Stability AI(SDL v0.8):画像生成
Claude 3.5 Sonnet:テキスト生成
:::# アウトプット
技術のアウトプットとして、
「ユーザが入力した情報から、**料理の写真とその料理のレシピ**を出力するアプリ」を1から作ってみます。# 構成とイメージ
![image.png](htt
Bumblebee による画像分類を Amazon SageMaker Serverless でサーバレスサービス化する
## はじめに
以前、 AWS の Amazon SageMaker 上に Elixir で画像分類サービスを構築しました
https://qiita.com/RyoWakabayashi/items/6cad17cd6047cc7113c0
SageMaker 上に構築する場合、通常の Web サーバーと同じように Phoenix フレームワークで構築可能です
また、画像分類を AWS Lambda でサーバレス化する記事も書いています
https://qiita.com/RyoWakabayashi/items/53d831e4e6ff3ad056c8
Lambda の場合、サーバレスの特殊な環境で実行するため、 FaasBase というモジュールを利用しました
https://github.com/imahiro-t/faas_base
サーバレス化することで、使用していない間のコスト抑制、アクセスピーク時の可用性向上に効果が期待できます
本記事では、基本的に通常の SageMaker と同じ実装で Phoenix を使いつつサーバレス化可能な SageMake
[その5] Terraform Cloud で別ワークスペースのoutputの値を参照する
## これは何?
Terraform Cloudにおけるワークスペース間の値の参照をtfe_outputsを使用して、参照した話になります。## tfe_outputsとは?
従来の別のプロジェクトのstateファイルを参照する際は[**terraform_remote_state**](https://developer.hashicorp.com/terraform/language/state/remote-state-data)を使用しますが、HashiCorp HCP Terraformにおいては[**tfe_output**](https://registry.terraform.io/providers/hashicorp/tfe/latest/docs/data-sources/outputs)のデータソースを使用することを推奨と記載されているため、今回はこちらを使ってTerraform Cloud 上でのワークスペース間の参照をしようと思います。## 手順
今回使用するソースコードは[こちら](https://github.com/atsw0q0/tes
【Amazon Connect】携帯電話宛ての発信制限を解除する方法(2024年9月時点)
# 背景
これらの記事にも書かれていますが、Amazon Connectから携帯電話へ発信する際は、事前に許可申請を行う必要があります。https://qiita.com/beajourneyman/items/57a662d3b164ea7cb481
https://qiita.com/Aichi_Lover/items/166e3a36d1fd85626c18
最近、こちらの許可申請を行ったのですが、昨年や一昨年に行った時と比べて、微妙に申請の方法や内容が変わっていたので、行った事のスクリーンショットを一通り撮ってみました。
これから同様の申請を行う方々のご参考になりましたら、幸甚で御座います。
(スクリーンショットは2024年9月時点のものになります。)# 申請方法
AWSマネジメントコンソールで「サポート」を開いて、「ケースを作成」をクリックします。![スクショ1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779844/93e6db00-035f-aae5-c0f7-5a
新卒のIT未経験がRDSをPrivateLinkでつなげる際につまずいたこと
## 概要
こんにちは。今年度新卒でIT業界に入ったものです。ITむず過ぎて詰んでいます。誰か助けてください。今回はタイトルの通り、AWSのRDSをPrivateLink経由で接続する際に私が遭遇した課題とその解決策を共有します。
この記事は、AWS初学者がつまずきやすいポイントを示すとともに、これからAWSを始める方々の助けになることを目指しています。## 目次
– 全体像
– RDSをNLBのターゲットに登録できない
– NLBのヘルスチェックが正常にならない
– 作成したRDSを他のVPCリソースから呼び出せない
– 最後に## 全体像
今回作成したアーキテクチャの全体像は以下のようになります。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3833984/820f60a4-bd38-b0a2-4f8e-295ab0c10a21.png)
目的は、RDSをVPC内に作成し、別のVPCとPrivateLinkで接続することで、異なるVPCからRDSにセキュ
[その2] Terraform Cloud Private Registory で モジュールを管理
## これは何?
Terraform CloudにおけるPrivate Registoryの機能の紹介になります。## Private Registoryを使用するメリット
Private Registory について詳しく知りたい方は[こちら](https://developer.hashicorp.com/terraform/registry/private)をさんこうに。https://developer.hashicorp.com/terraform/registry/private
Private Registoryを使用するメリットとして、私が触れて感じたことは大きく2点になります。
– ローカルモジュールを置くことなく、複数環境でモジュールを呼び出すことができること。
– バージョン管理が容易であること。
– 以下のように利用したいバージョンを指定することで、任意のバージョンの状態でリリースできる。
– ローカルモジュールでは、既存モジュールの最新化に伴い思わぬ変更/削除も発生するかもしれないが、バージョンを変更しなければ、従来の使い方ができ
[その1] Terraform Cloud 触ってみた
## これは何?
Terraform Cloud を初めて触った 〜 Apply までの流れをまとめたものになります。## 0. 事前準備(GitHub リポジトリの作成 & tfファイルのプッシュ
GitHubリポジトリを作成し、.tfファイルをPushするようにします。
今回の演習で使用したリポジトリは[こちら↓](https://github.com/atsw0q0/test-terraform-cloud)です。https://github.com/atsw0q0/test-terraform-cloud
## 1. Terraform Cloud 初期設定
やることとしては以下の3点が必要となります.1. Organizations の作成
1. Projects の作成
1. Workspaces の作成### 1-1. Organizationsの作成
最初にOrganizationsを作成します.
`Create organization`をクリックします.![image.png](https://qiita-image-store.s3.ap-
AWS CDKをクローンし、AWS最新情報を生成AIを利用しslackで効率的にキャッチアップ(突貫でコードのみ)
詳しい書き方は省きますが、うまくいったのでコーディングできたコードを、備忘録として記録します。
残りはクローンしたものをそのまま使っていただければ、上手くいきます。
申し訳ないですが、またやり方は後日で、**lambda>notify-to-app>index.py**
“`
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0import boto3
import json
import os
import time
import tracebackimport urllib.parse
import urllib.requestfrom typing import Optional
from botocore.config import Config
from bs4 import BeautifulSoup
from botocore.exceptions import ClientError
import re
【AWS】S3のアクセス制御【SAA-C03】
# はじめに
AWS ソリューションアーキテクト – アソシエイト(SAA-C03)を受験するにあたって、S3のアクセス制御についての選択肢を間違えがちだったので軽く整理をしてみました。# バケットポリシー
・バケット単位でアクセス権限を設定するリソースベースのポリシー
・自AWSアカウントのIAMユーザーや他のAWSアカウントのユーザーにS3やそのオブジェクトへのアクセス権限を設定することが可能
・アクセス元のIPアドレスやドメイン単位でのアクセス制御が可能# IAMポリシー
・IAMユーザー単位でアクセス権限を設定するIDベースのポリシー
・自AWSアカウントのIAMユーザーやグループ、ロールにS3リソースへのアクセス権限を設定することが可能
・他AWSアカウントにはアクセス制限を設定できない
・アクセス元のIPアドレスやドメイン単位でのアクセス制御が可能# ACL(アクセスコントロールリスト)
・AWSアカウント単位でアクセス権限を設定する
・基本的な読み取り/書き込み許可を他のAWSアカウントに付与できる(自アカウントのユーザーには付与できない)# まとめ
ソリ
AWS Kinesis系サービスについて
## AWS Kinesis
ざっと以下のサービスがある
①Kinesis Data Stream:ストリームデータをリアルタイムに __処理__シャードという単位でデータを取り込み・処理でき、取り込み・処理後の配信では1つのシャードに対して複数のリソースを指定できる(同じデータに対して複数の処理を同時並行で実行可能)
②Kinesis Data Firehose:ストリームデータを __変換・配信__
サーバのログ等をs3等のデータ保存サービスに流すことができる。流す際には容量圧迫を見越してデータを圧縮したり予めデータ加工して置いたりすることが可能。
S3にログをファイルとして出力することが可能であり、YYYY/MM/DD/TT:TTの粒度までオブジェクト構造を決めることができる③Kinesis Data Analytics:ストリームデータを __分析__
使ったことないので触ったらまた追記する・・・
アーキの例としては、
①データインプット対象 → Kinesis data stream → Lambda/kinesis data analytics/EC2
AWS ControlTower⑧Access Analyzer外部アクセス・未使用アクセス
# AccessAnalyzerとは?
(公式ドキュメント:https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/what-is-access-analyzer.html)
今回は外部アクセスアナライザーと未使用のアクセスアナライザーを設定します。★外部アクセスアナライザー
意図しないアクセスがないか確認することができる。★未使用のアクセスアナライザー
一定期間使用されていないアクセス権限等を確認することができる。
>未使用のロール、IAM ユーザーの未使用のアクセスキー、IAM ユーザーの未使用のパスワード が検出される(公式引用)# AccessAnalyzer(外部アクセス)を設定してみる
はじめはSecurithHubとGuardDutyを設定したときと同じです。
Organizationsのサービスページを開きます。
「統合されたサービス」下の、大きくカテゴリを選択できるプルダウンにて「アクセスと許可」を選択します。
![スクリーンショット (1091).png](https://qiita-image-st
(小ネタ) [CloudWatch Logs Insights] LogStream単位で、FluentBitによる構造化ログの必要情報のみを一覧出力
## 概要
– `FluentBit`から`CloudWatch Logs`に送信される情報が非常に見づらいです
– 上記を、`Logs Insights`で`LogStream`単位のフィルタリングを行うことにより解決します## 前置き
記事にするほどのことではない気もしますが、社内で実際に困っている人がいたので記事化しておきます
誰かの参考になれば嬉しいです## 想定ケース
本記事は、以下のようなケースを想定しています
– ECS on Fargateにおいて、FluentBitを利用してログを送信
– 送信先としてCloudWatch Logsを指定![ecs-cloudwatch.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643664/f2713007-157a-05c6-4f4c-8188f8c16a56.jpeg)
## 問題のシナリオ
以下のようなシナリオにおいて注意が必要です
– `ECS on Fargate`のデプロイにおいてトラブルが発生
– タスク起動後、例外
【AWS】機械学習系サービスまとめ【SAA-C03】
# はじめに
AWS ソリューションアーキテクト – アソシエイト(SAA-C03)を受験するにあたって、AWSの機械学習を利用したサービス名がなんとなく似ていて、選択肢を間違えがちだったので軽く整理をしてみました。## Amazon Comprehend
#### Comprehend = 理解する
・機械学習を利用した自然言語処理サービスで**テキストからインサイトや関係性を発見する**ことが可能
・テキスト内の登場人物を識別すること(エンティティ認識)や、ポジティブ・ネガティブといった感情を分析すること(感情分析)、特定のキーワードに関連する情報を抽出すること(キーフレーズ抽出)などが可能
・**Amazon Comprehend Medical**という医療情報に特化したサービスもある![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641068/a9d5d95c-ff1c-a9f0-d4b5-8c83e8a2781b.png)
## Amazon Transcribe