View a markdown version of this page

トラブルシューティングAWS Secrets Manager - AWS Secrets Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

トラブルシューティングAWS Secrets Manager

こちらの情報は、Secrets Manager を操作するときに発生する可能性がある問題の、診断や修復に役立ちます。

ローテーションに関連する問題については、「AWS Secrets Managerローテーションのトラブルシューティング」を参照してください。

「アクセスが拒否されました」のメッセージ

Secrets Manager に対して GetSecretValue や CreateSecret などの API コールを行う場合、その呼び出しを行う IAM アクセス許可が必要です。コンソールを使用する場合、コンソールはユーザーに代わって同じ API コールを行うため、IAM アクセス許可も必要です。管理者は、IAM ユーザーまたは自分がメンバーであるグループに IAM ポリシーをアタッチすることで、権限を付与できます。ポリシーが時間帯または IP アドレス制限などの条件を含む権限を付与する記述をしている場合は、リクエストを送信する際にそれらの条件を満たす必要もあります。IAM ユーザー、グループ、またはロールのポリシーの表示や修正の詳細については、「IAM ユーザーガイド」の「Working with Policies」を参照してください。Secrets Manager に必要な許可の詳細ついては、「の認証とアクセスコントロール AWS Secrets Manager」を参照してください。

手動で API リクエストに署名する (AWS SDK を使用しない) 場合は、正しくリクエストに署名していることを確認します。

一時的なセキュリティ認証情報に「アクセスが拒否されました」と表示される

リクエストの作成に使用している IAM ユーザーまたはロールに適切なアクセス許可があることを確認します。一時的なセキュリティ認証情報のアクセス許可は IAM ユーザーまたはロールから取得されます。つまり、アクセス許可は IAM ユーザーまたはロールに付与されたものに限定されます。一時的なセキュリティ認証情報のアクセス権限がどのように決定されるかについては、「IAM ユーザーガイド」の「Controlling Permissions for Temporary Security Credentials」を参照してください。

リクエストが正しく署名されており、そのリクエストの形式が整っていることを確認します。詳細については、選択した SDK のツールキットドキュメント、または IAM ユーザーガイド「一時的なセキュリティ認証情報を使用してAWSリソースへのアクセスをリクエストする」を参照してください。

一時的な認証情報が失効していないことを確認します。詳細については、「IAM ユーザーガイド」の「Requesting Temporary Security Credentials」を参照してください。

Secrets Manager に必要な許可の詳細ついては、「の認証とアクセスコントロール AWS Secrets Manager」を参照してください。

変更がすぐに表示されない。

Secrets Manager では、結果整合性と呼ばれる分散コンピューティングモデルが使用されています。Secrets Manager (または他のAWSサービス) で行った変更は、可能なすべてのエンドポイントから表示されるまでに時間がかかります。この遅延は、サーバー間、レプリケーションゾーン間、世界中のリージョン間でのデータ送信にかかる時間から発生している場合もあります。Secrets Manager ではパフォーマンス向上のためにキャッシュも使用しているため、これが原因で遅延が発生することがあります。変更は、以前にキャッシュされたデータがタイムアウトになるまで反映されない場合があります。

発生する可能性のあるこれらの遅延を考慮して、グローバルなアプリケーションを設計します。また、ある場所で行われた変更が他の場所で直ちに表示されない場合でも、期待どおりに機能するように確かめて下さい。

他のサービスAWSが結果整合性の影響を受ける方法の詳細については、以下を参照してください。

シークレットを作成するときに「非対称 KMS キーを使ってデータキーを生成することはできません」というメッセージが表示される

Secrets Manager は、シークレットに関連付けられている対称 KMS キーを使用して、各シークレット値のデータキーを生成します。非対称 KMS キーを使用することはできません。非対称 KMS キーではなく対称暗号化キーが使用されていることを確認します。手順については、「非対称 KMS キーの識別」を参照してください。

AWS CLIまたはAWS SDK オペレーションが部分的な ARN からシークレットを見つけられない

多くの場合、Secrets Manager は完全な ARN ではなく ARN の一部からシークレットを見つけることができます。しかし、シークレットの名前がハイフンで終わり、その後に 6 つの文字が続く場合、Secrets Manager は ARN の一部からシークレットを見つけられないことがあります。代わりに、完全な ARN またはシークレットの名前を使用することを推奨します。

詳細

Secrets Manager は、シークレット ARN が確実に一意であるようにするのに役立つよう、シークレット名の末尾に 6 つのランダムな文字を含めます。元のシークレットが削除され、同じ名前で新しいシークレットが作成された場合、これらの文字により 2 つのシークレット ARN は異なったものとなります。ARN が異なるため、古いシークレットにアクセスできるユーザーであっても、新しいシークレットへのアクセスを自動的に取得するわけではありません。

Secrets Manager は、リージョン、アカウント、シークレット名、ハイフン、さらに 6 文字を含むシークレットの ARN を次のように構築します。

arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName-abcdef

シークレット名がハイフンと 6 文字で終わる場合、ARN の一部のみを使用すると、完全な ARN を指定しているかのようにSecrets Manager に表示されます。たとえば、ARN で MySecret-abcdef という名前のシークレットがあるとします。

arn:aws:secretsmanager:us-east-2:111122223333:secret:MySecret-abcdef-nutBrk

シークレット ARN の一部のみを使用する次のオペレーションを呼び出すと、Secrets Manager がシークレットを見つけられないことがあります。

$ aws secretsmanager describe-secret --secret-id arn:aws:secretsmanager:us-east-2:111122223333:secret:MySecret-abcdef

このシークレットはAWSサービスによって管理されるため、そのサービスを使用して更新する必要があります。

シークレットを変更しようとしているときにこのメッセージが表示された場合、シークレットはメッセージに記載されている管理サービスを使用してのみ更新できます。詳細については、「AWS Secrets Manager 他の AWS サービスによって管理されるシークレット」を参照してください。

シークレットを管理しているユーザーを特定するには、シークレット名を確認します。他のサービスによって管理されるシークレットには、そのサービスの ID がプレフィックスとして付けられます。または、 で describe-secret をAWS CLI呼び出し、フィールド を確認しますOwningService

Transform: AWS::SecretsManager-2024-09-16 の使用時に Python モジュールのインポートが失敗する

Transform: AWS::SecretsManager-2024-09-16 を使用していて、ローテーション Lambda 関数の実行時に Python モジュールのインポートに失敗した場合、問題は互換性のない Runtime 値が原因である可能性があります。この変換バージョンでは、AWS CloudFormationはランタイムバージョン、コード、共有オブジェクトファイルを自動的に管理します。これらをユーザーが管理する必要はありません。