[解決済み] AWS IAMポリシーを適用した後、どれくらいの期間待てば有効になりますか?
質問
AWS IAMユーザーポリシーをプログラムで追加・削除しているのですが、それらのポリシーの適用結果が一貫していません。
例えば、これは成功するかもしれないし、しないかもしれない(Java 1.6.6 SDKを使用している)。
- 特定のバケットから読み取ることができるユーザーで開始する
- ユーザーポリシーを消去する (ポリシーをリストアップし、それぞれに対して "deleteUserPolicy" を呼び出す)
- ユーザーがユーザー ポリシーを持たなくなるまで待ちます (空のセットを返すまで "listUserPolicies" を呼び出します)。
- バケツからの読み込みを試みます (これは失敗するはずです)
3 と 4 の間にブレークポイントを置き、数秒待つと、ユーザーはバケツから読み込めなくなりますが、これは私が期待するところです。ブレークポイントを削除すると、ユーザーはバケツから読み取ることができますが、これは間違っています。
(これはまた、私が を追加する を追加してからリソースにアクセスした場合にも矛盾します。)
ポリシー変更がIAMシステムだけでなく、コンポーネント(S3、SQSなど)に影響を及ぼしたときを知りたいです。これによる領収書や謝辞を得る方法はないのでしょうか?それとも、一定の待ち時間があるのでしょうか?
ポリシーアプリケーションの内部に関するドキュメントはありますか?
(参考までに、私の質問を以下の場所からコピーしました。 https://forums.aws.amazon.com/thread.jspa?threadID=140383&tstart=0 )
どのように解決するのですか?
の中で、"almost immediately"というフレーズが5回使用されています。 IAM FAQ で 5 回使用されており、もちろん、やや主観的なものです。
AWSはグローバルに分散したシステムなので、変更は伝搬しなければなりませんし、システム全体として可用性とパーティション耐性を優先するように設計されているようです。 とは対照的に 即座の一貫性とは対照的です。
あなたがそれを考慮したかどうかはわかりませんが、フローのステップ 4 で実際に、パス、フェイル、パス、パス、フェイル、フェイル...というシーケンスを見ることは、まったく可能性の範囲内と言えます。 混合整合性 によって証明されるように、バケツもバケツ内のオブジェクトも、実際には一箇所に集まった単一のものではないからです。新しいオブジェクトは即座に一貫性を持ち、上書きと削除は最終的に一貫性を持ちます。
ポリシーのそのような適用を確認するために、AWS は、そのポリシーの複製されたコピーを持っているすべてのエンティティに、それが現在のバージョンを持っていたかどうかを確認するために、(少なくとも間接的に)問い合わせる能力を公開する必要があります... これは、S3 のように巨大なシステムにおいては、少なくとも言っても潜在的に非現実的または扱いにくいでしょうし、驚異的に成長してきたのですが、そのために 2 兆個のオブジェクトを超え、ピーク時の負荷は 1 秒あたり 110 万リクエストを超えます。 .
に対するAWSの公式回答 このフォーラムの投稿 には、より詳細な情報が記載されています。
<ブロッククオートIAMエンティティに加えた変更はすぐにIAM APIに反映されますが、グローバルに情報が反映されるには顕著な時間がかかることがあります。ほとんどの場合、行った変更は1分未満で反映されます。ネットワーク状況によって遅延が大きくなる場合があります。また、サービスによっては、有効期限が切れて置き換えられるまでに時間がかかる特定の非クレデンシャル情報をキャッシュする場合があります。
その間に何をすべきかについての付随する回答は、"try again."でした。
<ブロッククオートほとんどの場合、変更はすぐに反映されるため、最初のわずかな遅延の後、再試行ループを推奨します。スリープした場合、コードはほとんどの場合、あまりにも長く待たされることになり、稀な例外に対しては十分な時間がかからない可能性があります。
私たちはレプリケーションシステムのパフォーマンスを積極的に監視しています。しかし、S3のように、我々は最終的な一貫性のみを保証し、特定の上限を保証するものではありません。
関連
-
[解決済み】DynamoDBMapperとTable for DynamoDB Tablesの違いとは?
-
[解決済み】S3 Bucket アクションがどのリソースにも適用されない
-
[解決済み] S3からモデルをロードしようとすると、チェーン内の任意のプロバイダからAWS認証情報をロードできない - エラー - が発生する
-
[解決済み] AWS ElasticsearchとAWS Redshiftの違いは何ですか?
-
[解決済み] スケジュールされたイベントソースをトリガーとするラムダ関数を設定するには、terraformを使用します。
-
[解決済み] Amazon S3におけるHeadBucket操作とは
-
[解決済み] Amazon MQとSQSの違いは何ですか?
-
[解決済み] AWS - Disconnected : サポートされている認証方法がありません (サーバーは :publickey を送信)
-
[解決済み] AWSプライベートリンクとVPCエンドポイント
-
[解決済み】EC2インスタンスにスワップを追加する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】あなたのWSGIPathは、存在しないファイルを参照しています。
-
[解決済み】aws cli: update-kubeconfig が期待通りに動作しない。
-
[解決済み] Amazon SQSを複数のコンシューマで使用する
-
[解決済み] Terraformです。EFSアクセスポイントをEC2にマウントするには?
-
[解決済み] スケジュールされたイベントソースをトリガーとするラムダ関数を設定するには、terraformを使用します。
-
[解決済み] リクエストに含まれるセキュリティトークンの有効期限が切れている
-
[解決済み] プライマリネームサーバが親に登録されていない
-
[解決済み] AWSです。CloudFormationのテンプレートでbooleanパラメータを指定する方法
-
[解決済み] AWSプライベートリンクとVPCエンドポイント
-
[解決済み] EC2でインスタンスを削除するには?