aws-sms-voice について
aws-sms-voiceは、AWS End User MessagingのSMS、Voice、RCS、Notifyを扱うスキルです。テスト送信やOTPから、国別登録と本番運用の準備までを案内し、安全対策と後片付けも説明します。
主な機能
- 01RCSテストエージェントの作成と送信
- 02NotifyによるOTPテキストの送信
- 03国別登録要件の確認
- 04登録および本番化ワークフロー
- 05IAMとメッセージの安全対策
活用シーン
- 01検証済み端末でブランド付き双方向RCSを試す
- 02Notifyで確認コードを送信する
- 03国ごとの要件に沿ってIDを登録する
- 04SMS、RCS、Notifyを本番運用へ移行する
MCP 対応
AWS MCP サーバーでAWS APIを実行すると、サンドボックス実行、監査ログ、可観測性を利用できます。利用できない場合はAWS CLIまたはSDKも使えます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill aws-sms-voiceインストール後、Claude Code で/aws-sms-voiceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/customer-go-to-production-guide.mdhello-notify-otp.mdhello-rcs-test-agent.mdregistration-core-engine.mdregistration-requirements-by-country.md詳細
AWS End User Messaging — SMS、Voice、RCS、Notify
概要
AWS End User Messaging SMS and Voice(pinpoint-sms-voice-v2 API)は、SMS、Voice、RCS Business Messaging、Notify(OTP)のコントロールプレーンおよびデータプレーンです。このスキルでは、最も手早く始められる2つの方法を紹介します。どちらも電話番号の購入やキャリアへの登録をせずに、約5分で実際の電話にメッセージを送信できます。
- RCS テストエージェントを作成して、最初のブランドメッセージを送信する — ブランド設定済みの RCS Business Messaging エージェント、検証済みのテストデバイス、リッチな送信メッセージと受信メッセージを用意します。references/hello-rcs-test-agent.md を参照してください。
- Notify で OTP を送信する — AWS が管理する送信アイデンティティと事前承認済みテンプレートを使って、ワンタイムパスコードのテキストメッセージを送信します。references/hello-notify-otp.md を参照してください。
オンボーディングの後は、このスキルを使って、3つの手順でアイデンティティを本番登録に進めます。
- 国で必要な登録を確認する — 対象の国とアイデンティティタイプに必要な登録タイプと、最新のフィールド一覧を確認し、公式ドキュメントと照合します。references/registration-requirements-by-country.md を参照してください。
- 登録のライフサイクルを実行する — 作成、フィールドの導出、入力、送信、ポーリング、却下からの復旧、再送信まで、RCS の国別ローンチを含むすべての登録タイプで共通する汎用エンジンです。references/registration-core-engine.md を参照してください。
- アイデンティティを本番環境に移行する — SMS サンドボックスを終了し、キャリアモニタリングと SMS フォールバックを使って各国で RCS をローンチし、Notify を Advanced にアップグレードして、本番運用に必要な対策(キーワード、設定セット、保護設定)を適用します。references/customer-go-to-production-guide.md を参照してください。
ガードレール — このスキルのファイルの場所(MCP とローカルインストール)
このスキルは2通りの方法で読み込めるため、references/ ファイルの参照方法が異なります。
- AWS MCP の
retrieve_skillツール経由で読み込んだ場合。 参照ファイルはローカルファイルシステム上にありません。fileパラメーターを指定してretrieve_skillで取得してください(例:file="references/hello-rcs-test-agent.md")。これらのパスをローカルでfile_readしないでください。ファイルはそこにはありません。 - ローカルにインストールした場合(例:
.kiro/skills/aws-sms-voice/)。このファイルに記載されている相対パスを使い、ローカルのスキルディレクトリから参照ファイルを読み込んでください。
この説明が適用されるのは、このスキルにパッケージ化されたファイルのみです。ユーザーが作成した成果物(brand-assets/、一時ファイル)は常にユーザーの作業ディレクトリにあります。
接続時は、AWS MCP サーバーで利用できるツールを使ってコマンドを実行してください。サンドボックス化された実行、監査ログ、可観測性が提供されます。MCP サーバーを利用できない場合は、必要に応じて AWS CLI またはシェルを使用してください。
パスを選ぶ
| 目的 | 移動先 |
|---|---|
| 自分のテスト用電話に、リッチでブランド化されたメッセージ(カード、ロゴ、双方向メッセージ)を送信する | hello-rcs-test-agent.md |
| 対応している任意の電話番号に、確認コード/OTP を最短で送信する | hello-notify-otp.md |
| 国ごとに必要な登録と、その必須項目を確認する | registration-requirements-by-country.md |
| あらゆる種類の登録(10DLC、フリーダイヤル、送信者 ID、RCS のローンチ、Notify のティア)を作成して送信する | registration-core-engine.md |
| ID を本番環境に移行する(サンドボックスの終了、RCS キャリアのローンチとフォールバック、Notify Advanced、衛生管理) | customer-go-to-production-guide.md |
RCS テストエージェントが配信できるのは、確認済みのテストデバイスのみです。また、簡単なブランド登録が必要です(数分で自動審査されます)。Notify は、対応国であれば任意の宛先にすぐ送信できますが、AWS 管理の OTP テンプレートに限られます。リッチメッセージを試す場合は RCS を、できるだけ早く本番品質の確認メッセージを送信する場合は Notify を選んでください。
始める前に(どちらのパスでも)
ここでは、AWS MCP サーバーの使用を推奨します。サンドボックス実行、監査ログ、オブザーバビリティを備えた環境で、数多くの
pinpoint-sms-voice-v2 および sts の呼び出しを実行できます。必須ではありません。MCP サーバーを利用できない場合でも、すべての手順は通常の AWS CLI または AWS Agent Toolkit で実行できます。
- 認証情報。
aws sts get-caller-identity --region <REGION>を実行します(リージョナル STS エンドポイントを使用するには--regionを指定してください。グローバルエンドポイントのsts.amazonaws.comはレガシーです)。失敗する場合は、ユーザーの認証を設定し(名前付きプロファイル/SSO/アクセスキー。プロファイルを使用する場合は各コマンドに--profile <PROFILE>を指定)、一時的な認証情報を使用する IAM ロールの引き受けを優先してください。各リファレンスファイルの前提条件には、認証、CloudTrail 監査、CLI の最新状態の確認に必要な手順がすべて記載されています。 - 最小権限のアクセス。 これらのタスクには、対象アカウント内で特定の
sms-voice:アクションをいくつか実行する必要があります(各リファレンスファイルには、各手順で使用する読み取り/書き込みアクションが列挙されています。例:sms-voice:DescribeRcsAgents、CreateRcsAgent、CreateRegistration、CreateNotifyConfiguration、SendNotifyTextMessage)。選択したパスで使用するアクションだけにポリシーの範囲を絞り、sms-voice:*や*FullAccessは付与しないでください。 - CLI のバージョンをうのみにしないでください。 どの手順でも
pinpoint-sms-voice-v2コマンドに対してInvalid choice '<operation>'が発生した場合は、権限やアカウントの問題ではなく、ローカルのサービスモデルが古いか不完全であると判断してください。RCS と Notify のリファレンスファイル(前提条件 3)に、古い~/.aws/models/pinpoint-sms-voice-v2/のオーバーライドを消去し、それができない場合は AWS CLI をアップグレードする、または boto3 にフォールバックするという、発生時の対処方法がすべて記載されています。AccessDeniedExceptionは、ID に必要なsms-voice:権限がないことを意味します。
各リファレンスファイルは単体で完結しています。収集した ID をセッション状態として管理し、送信前に必要な入力をサービスに照らして検証したうえで、最後に Failure modes の表と Cleanup のセクションを記載しています。API の手順を独自に組み立てるのではなく、ユーザーが選んだパスに対応するファイルに従ってください。いくつかの手順は、失敗しても通知されなかったり、サービスのバージョンごとに異なるフィールドセットをリアルタイムで読み取る必要があったりします。
セキュリティに関する考慮事項
- 最小権限の IAM。 ポリシーの対象を特定の
sms-voice:アクションに限定してください。本番環境では*FullAccessやsms-voice:*を使用しないでください。リファレンスファイルには、各オンボーディング手順で必要となる最小限の読み取り/書き込みアクションが記載されています。 - 一時的な認証情報。 一時的な認証情報を使用して IAM ロールを引き受けてください。長期間有効なアクセスキーをコード、設定、環境変数に埋め込まないでください。
- メッセージやフィールドにシークレットを含めないでください。 OTP コードやメッセージ本文は CloudTrail や後続のログに記録される可能性があります。機密情報として扱い、実際のコードをハードコードしないでください。
sms-voiceAPI 呼び出しの CloudTrail ログ記録を有効にし、CloudTrail ログと CloudWatch Log グループを KMS CMK で暗号化してください。本番環境のトラフィックを流す前に、イベント送信先(CloudWatch Logs または Kinesis)を備えた設定セットを関連付け、配信を監視してください。主要なセキュリティシグナル(AccessDeniedExceptionの繰り返し、異常な送信量、支出上限がしきい値に近づいていること)に対して CloudWatch アラームを作成し、予防的に通知できるようにしてください。登録時の連絡先フィールド(メールアドレス、電話番号、URL)はパートナーによる審査に提出されるため、実在するものの機密性のない業務用連絡先を使用してください。 - 同意とオプトアウト。 オプトインした受信者にのみメッセージを送信してください。STOP/オプトアウトの状態を尊重してください。RCS の手順では、送信前にオプトアウトリストを確認する方法を示しています。テストエージェントは、検証済みのテストデバイスにのみ配信するよう意図的に制限されています。同意を得ていない番号に送信するため、この制限を回避しないでください。
- 支出上限と不正利用。 アカウントのデフォルトの支出上限は意図的に低く設定されています。上限を引き上げる場合は慎重に行い、監視してください。Notify では送信先ごとの1日あたりの上限を変更できません。これを回避しようとしないでください。
- 破壊的なクリーンアップ。 ティアダウンの手順では、エージェント、登録、設定を削除します。削除は取り消せません。クリーンアップを実行する前にユーザーに確認し、オンボーディングフローではRCSエージェントの削除保護がデフォルトで有効になっていることを伝えてください。