AccessKey ペアの作成、管理、セキュリティ保護に関するよくある質問。
AccessKey ペアとは
AccessKey ペアは AccessKey ID と AccessKey Secret で構成され、Alibaba Cloud へのプログラムによるリクエストを認証するために使用されます。
-
AccessKey ID:AccessKey ペアの公開された一意の識別子です。
-
AccessKey Secret:API リクエストに署名するために使用される秘密鍵です。この署名により、リクエストの信頼性と整合性が検証されます。AccessKey Secret は厳重に機密情報として保管する必要があります。
漏洩のリスクを低減するため、AccessKey Secret は作成時に一度しか表示されず、再取得はできません。
AccessKey ペアの使用方法
AccessKey ペアを使用して、CLI、SDK、または Terraform を介して Alibaba Cloud API を呼び出します。
Alibaba Cloud は、一時的なセキュリティ認証情報 (STS トークン) に基づく、より安全な代替手段も提供しています。詳細については、「アプリケーション開発シナリオ」をご参照ください。
AccessKey ペアを使用する必要がある場合は、次のベストプラクティスをご参照ください:「やむを得ず使用する AccessKey ペアの適切な保管と使用」。
AccessKey ペアの仕組み
Resource Access Management (RAM) は、アルゴリズムによって AccessKey ID と AccessKey Secret を生成します。Alibaba Cloud は、保管時と転送時の両方でこれらを暗号化します。
アプリケーションがリクエストを送信する際、AccessKey ID と AccessKey Secret から派生した署名を含みます。Alibaba Cloud はこれらを使用して送信者を認証し、リクエストの整合性を検証します。Alibaba Cloud が使用する署名メカニズムの詳細については、「V3 のリクエスト本文と署名メカニズム」をご参照ください。
利用可能な AccessKey ペアの種類
-
Alibaba Cloud アカウントの AccessKey ペア (非推奨)
この AccessKey ペアは Alibaba Cloud アカウントに属します。デフォルトでは、アカウント配下のすべてのリソースに対する完全な権限を持っています。侵害された場合、セキュリティリスクは極めて高くなります。Alibaba Cloud アカウントの AccessKey ペアを作成または使用しないことを強く推奨します。
-
RAM ユーザーの AccessKey ペア (推奨)
この AccessKey ペアは、事前に作成する必要がある RAM ユーザーに属します。AccessKey ペアは RAM ユーザーの権限を継承するため、最小権限のアクセス管理が可能になります。ベストプラクティスとして、独立したアプリケーションごとに個別の RAM ユーザーと AccessKey ペアを割り当ててください。これにより、過剰な権限を防ぎ、認証情報が侵害された場合の影響範囲を縮小できます。
Alibaba Cloud アカウント (ルートアカウント) の AccessKey ペアは、デフォルトでアカウント配下のすべてのリソースに対する完全な管理者権限を持っています。ルートアカウントの AccessKey ペアを使用すると、個別の権限付与なしに、あらゆるクラウドサービス API (Short Message Service など) を呼び出すことができます。これらの権限は広範囲にわたるため、ルートアカウントの AccessKey ペアの使用には注意が必要です。必要最小限の権限を持つ RAM ユーザーを作成し、プログラムによるアクセスには RAM ユーザーの AccessKey ペアを使用することを推奨します。
AccessKey ペアに関して表示できる情報
AccessKey ID、ステータス、作成時刻、最終使用情報など、AccessKey ペアのメタデータを表示できます。
作成後に AccessKey ID を表示できるか
はい。
作成後に AccessKey Secret を表示できるか
いいえ、できません。セキュリティ上の理由から、AccessKey Secret は作成時にのみ表示またはダウンロードが可能です。AccessKey Secret は変更することもできません。AccessKey Secret を紛失した場合や交換が必要な場合は、新しい AccessKey ペアを作成するしかありません。新しい AccessKey Secret は後から取得できないため、作成ダイアログを閉じる前に必ずコピーして保存してください。
各 Alibaba Cloud アカウント (ルートアカウント) は、最大 2 つの AccessKey ペアを作成できます。クォータに達した場合は、新しいものを作成する前に、既存の AccessKey ペアを無効化または削除してください。
AccessKey ペアが使用中かどうかの確認方法
コンソールまたは API を通じて、AccessKey ペアの最終使用時刻を確認します。
Alibaba Cloud アカウントまたは RAM ユーザーとしてログインしている場合、自身の AccessKey ペアの最終使用時刻を表示できます。
RAM 管理者として、アカウント内の任意の RAM ユーザーの AccessKey ペアの最終使用時刻を表示できます。「RAM ユーザーの AccessKey ペアに関する情報の表示」をご参照ください。
GetAccessKeyLastUsed API オペレーション
このオペレーションを呼び出すことで、プログラムによって AccessKey ペアの最終使用時刻を取得できます。
AccessKey ID を変更できるか
いいえ、できません。AccessKey ID は変更不可能です。
削除した AccessKey ペアを復元できるか
はい、RAM ユーザーの場合は可能です。RAM ユーザーの AccessKey ペアを削除すると、それはゴミ箱に移動されます。
削除された AccessKey ペアはゴミ箱に 30 日間保持され、この期間中に復元できます。一度 AccessKey ペアが完全に削除されると、回復することはできません。
詳細については、「RAM ユーザーの AccessKey の削除」をご参照ください。
使用中の AccessKey ペアを削除すると、関連するアプリケーションは Alibaba Cloud リソースへのアクセスを失います。
AccessKey ペアが漏洩した場合の対処法
詳細については、「AccessKey 漏洩時の対応計画」をご参照ください。
AccessKey ペアを所有するアカウントの特定方法
セキュリティ上の理由から、Alibaba Cloud は AccessKey ID の所有者を特定するための公開サービスを提供していません。
組織内で AccessKey ID の所有者を特定するには、次のいずれかの方法を使用します。
RAM コンソールで ユーザー ページに移動し、AccessKey ID を検索します。複数のアカウントを管理している場合は、各アカウントで検索を繰り返します。
組織でリソースディレクトリを使用している場合は、ActionTrail で マルチアカウント証跡を有効にし、集約された監査ログで AccessKey ID をクエリして所有者を特定します。
AccessKey ID の正確性の検証:入力する AccessKey ID が完全に正しいことを確認してください。見た目が似ている文字 (たとえば、
0とO、または1とl) があると、AccessKey ペアが有効であってもクエリが「存在しません」と返す原因となることがあります。権限の制限:RAM ユーザーは、Alibaba Cloud アカウント (ルートアカウント) の AccessKey 情報 (ID または Secret) を直接表示することはできません。RAM ユーザーは、自身が属するルートアカウントの名前のみ表示できます。ルートアカウントの AccessKey ペアをクエリするには、ルートアカウントでログインするか、ActionTrail のマルチアカウント追跡機能を持つリソースディレクトリを使用します。
「この AccessKey には漏洩のリスクがあります」というエラーが表示される理由
Alibaba Cloud が潜在的な漏洩を検出し、AccessKey ペアを制限的保護下に置きました。「AccessKey ペアの制限的保護」の手順に従って解決してください。
AccessKey ペアを無効化または削除した後も異常な呼び出しアラートを受信する理由
Alibaba Cloud のセキュリティ検出は、基盤となるトラフィックと行動モデルをリアルタイムで分析します。AccessKey ペアを無効にした後でも、次の場合にアラートが送信されることがあります。
無効化前の漏洩:AccessKey ペアが無効化される前に漏洩または悪用された場合、システムは関連する異常な動作を引き続きフラグ付けします。
ログクエリの差異:コンソールの [操作記録] ページには、デフォルトで特定の書き込み操作のみが表示されます。
QueryAccountBalanceのような読み取りタイプの API 呼び出しは表示されない場合があります。完全な呼び出し記録を表示するには、RAM コンソールの [セキュリティ情報] ページのコンソール内メッセージを確認するか、ActionTrail で完全な監査ログをクエリします。過去のアラートの処理:AccessKey ペアが無効化され、代替が使用されていることを確認した場合、アラートは過去のイベントに関連している可能性があります。確認後、安全に無視できます。
誤検知の調査:誤検知が疑われる場合は、ActionTrail を使用してアラートに関連する特定の呼び出し記録をクエリし、実際に異常な呼び出しが発生したかどうかを確認します。
AccessKey の異常アラートに表示される IP の場所が、サードパーティのクエリ結果と異なる理由
Alibaba Cloud のセキュリティアラートおよび ActionTrail の監査ログに記載されている IP の場所情報は、Alibaba Cloud の内部 IP アドレスデータベースに基づいています。これは、Baidu IP 検索などのサードパーティツールで表示される地理的な場所とは異なる場合があります。たとえば、ある IP アドレスが Alibaba Cloud では香港 (中国) と識別されても、サードパーティツールではシンガポールと表示されることがあります。
RAM ユーザーを削除したり、Alibaba Cloud アカウントを登録解除したりした後も AccessKey の異常アラートを受信する理由
RAM ユーザーが削除された場合
アラートで指摘された AccessKey ペアは、削除された RAM ユーザーのものではない可能性があります。Alibaba Cloud アカウント (ルートアカウント) 配下でまだアクティブな AccessKey ペアである可能性があります。ルートアカウントでログインし、[セキュリティ情報] 管理ページを確認して、指摘された AccessKey ペアを特定し、対処してください。
Alibaba Cloud アカウントが登録解除された場合
アカウントが登録解除されると、AccessKey ペアを含むすべての関連リソースはシステムによって自動的にクリーンアップされます。手動での操作は不要です。アラートを引き続き受信する場合や、AccessKey ペアがまだ使用可能であることを見つけた場合は、アカウントの登録解除プロセスが完全に完了したかを確認するか、その AccessKey ペアが登録解除されていない別のアカウントに属していないかを確認してください。
AccessKey の異常アラートにおける呼び出しは、API 経由かコンソールログイン経由か
AccessKey ペアは、API、CLI、および SDK を介したプログラムによるアクセス専用です。AccessKey ペアはコンソールログインには使用できません。異常アラートに記録されたすべてのインターフェイス呼び出しは、コンソールログインではなく、プログラムによるアクセスを介してトリガーされます。
RAM ユーザーの AccessKey ペアを使用して API が呼び出されると、ActionTrail の監査ログには RAM ユーザー名が表示されます。これは通常の ID 追跡メカニズムであり、呼び出しが成功したか失敗したかに関わらず適用されます。
ネットワークアクセス制限ポリシーによって API 呼び出しが拒否された場合の対処法
AccessKey ペアまたは Alibaba Cloud アカウントにネットワークアクセス制限ポリシーが設定されている場合、許可リスト外の IP アドレスからの API 呼び出しは拒否されます。次のエラーコードが返されることがあります。
AccessKeyId.AccessPolicyDeniedInvalidAccessKeyId.AccessPolicyDenied
どちらのエラーコードも、AccessKey ペアがアクセス制限ポリシーによってブロックされていることを示します。この問題を解決するには、次の手順を実行します。
RAM コンソールにログインし、AccessKey レベルおよびアカウントレベルのネットワークアクセス制限ポリシーを確認します。
該当するポリシーの許可リストにソース IP アドレスを追加します。
問題が解決しない場合は、新しい AccessKey ペアをテスト用に作成し、制限が AccessKey レベルかアカウントレベルかを確認します。
AccessKey のネットワークアクセス制限ポリシーは IP ブラックリストをサポートしているか
いいえ。AccessKey のネットワークアクセス制限ポリシーは許可リストモードのみをサポートしており、IP ブラックリストの直接的な設定はサポートしていません。
特定の IP アドレスが OSS などのクラウドサービスにアクセスするのを制限するには、次の代替案を検討してください。
ターゲットのクラウドサービスコンソールで IP ブラックリストを設定します。たとえば、OSS 固有の制限については、OSS コンソールで IP ブラックリストを設定します。
RAM で AccessKey ネットワークアクセス制限ポリシーを有効にし、許可された IP アドレスのみを追加します。この許可リストベースのアプローチにより、リストにないすべての IP アドレスからのアクセスを効果的にブロックします。
AccessKey のネットワークアクセス制限を設定した後、異常な呼び出しアラートを受信するのは正常か
はい。ネットワークアクセス制限ポリシーを有効にすると、許可リスト外の IP アドレスからの API 呼び出しはブロックされ、AccessPolicyDenied エラーが返されます。しかし、ブロックされた試み自体がセキュリティアラートをトリガーします。
アラートを受信したことは、呼び出しが成功したことを意味するわけではありません。これは、不正な IP アドレスがリソースにアクセスしようとし、その試みが効果的にブロックされたことを示しています。これは期待されるセキュリティ保護の動作です。
RAM のネットワークアクセス制限ポリシーに IP アドレスや VPC を追加できない場合の対処法
ポリシー設定を送信できない場合は、以下を確認してください。
パブリックネットワークポリシー:IP アドレスのフォーマットが正しいことを確認してください。パブリックネットワークアクセスを制限する必要がある場合は、「すべてのパブリックネットワークアクセスを許可」オプションに頼るのではなく、ターゲットの IP アドレスを明示的に追加してください。
VPC ポリシー:VPC ID は既存の VPC インスタンスに対応している必要があります。VPC コンソールで VPC ID を確認してください。不正な、または存在しない VPC ID は送信失敗の原因となります。
不要なポリシータイプ:特定のネットワークタイプを使用しない場合 (たとえば、VPC がない場合)、不要な検証エラーを避けるために、対応するポリシーの設定をスキップしてください。
予期しない拒否のトラブルシューティング
症状
ネットワーク ACL ポリシーが有効になると、許可された範囲外のソース IP アドレスからの呼び出しは拒否されます。一般的なエラーメッセージは次のとおりです。
Message: The specified parameter "AccessKeyId.AccessPolicyDenied" is not valid.Message: code: 400, Specified access key denied due to access policy.
解決策
API 呼び出しがネットワーク ACL ポリシーによって予期せず拒否された場合は、次のトラブルシューティング手順に従ってください。
-
影響を受ける AccessKey に AccessKey レベルのネットワーク ACL ポリシーがあるかどうかを確認します。
-
ある場合は、AccessKey レベルのネットワーク ACL ポリシーを変更して、ソース IP アドレスを含めます。
-
ない場合は、次のステップに進みます。
-
-
RAM 管理者として、アカウントレベルのネットワーク ACL ポリシーを確認および変更して、ソース IP アドレスを含めます。
-
問題が解決しない場合、ポリシー内のソース IP アドレスが不正確である可能性があります。正しい IP アドレスを確認して取得します。
ActionTrail を使用して、AccessKey 呼び出しの過去のソース IP アドレスを見つけることができます。詳細については、「ActionTrail での過去の API 呼び出しデータの確認」をご参照ください。
RAM ユーザーのログイン名/表示名を変更すると AccessKey も変更されるか
いいえ。AccessKey ID/Secret は変更されず、API/SDK/CLI の呼び出しは引き続き機能します。コンソールへのログインには新しいログイン名が必要です。古いログイン名を参照しているスクリプト、シングルサインオン (SSO)、ポリシー、または内部システムを更新してください。AccessKey を無効化/削除するか、RAM ユーザーを削除した場合にのみ無効になります。