S3バケットポリシーとKMSキーポリシーでのPrincipalの効果について

0

リソースポリシーについて、例えばS3バケットポリシーで

"Principal": {
                "AWS": "arn:aws:iam::123456789012:root"
            },

とした場合、これはアカウント123456789012の全IAMユーザーへのアクセスを許可していることになるでしょうか。

そうであれば、IAMポリシーで該当パケットに対するアクセス許可を明示的に記述していなくてもアクセス可能になると思っています。 ですがこれがKMSポリシーの記述だった場合、この記述があったとしてもIAMポリシーで明示的に該当キーへのアクセス許可がない場合はアクセス拒否をされてしまうようです。(参考

KMSのリソースポリシーは例外ということなのでしょうか。 よろしくお願いいたします。

1回答
1
承認された回答

これはアカウント123456789012の全IAMユーザーへのアクセスを許可していることになるでしょうか。

S3バケットポリシーでも全IAMユーザー (IAMポリシーで許可されている) にアクセスが許可されるという意味になります。
なので、IAMポリシーで明示的な許可を入れずにバケットへアクセスできるようにするには以下のブログにあるようにIAMユーザーのARNを指定する必要があります。
ちなみにこの方法は同じAWSアカウント内のIAMユーザーでのみ使用できます。
違うAWSアカウントの場合はS3バケットポリシーとIAMユーザーで明示的に許可が必要です。
https://dev.classmethod.jp/articles/summarize-principal-settings-in-s3-bucket-policy/#toc-s33

KMSキーポリシーであっても"Principal"でIAMユーザーのARNを許可していれば以下のようにアクセスができます。

aws kms describe-key --key-id arn:aws:kms:ap-northeast-1:123456789012:key/11111111-1111-1111-1111-111111111111
{
    "KeyMetadata": {
        "AWSAccountId": "123456789012",
        "KeyId": "11111111-1111-1111-1111-111111111111",
        "Arn": "arn:aws:kms:ap-northeast-1:123456789012:key/11111111-1111-1111-1111-111111111111",
        "CreationDate": "2024-06-10T13:29:58.531000+00:00",
        "Enabled": true,
        "Description": "",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "Origin": "AWS_KMS",
        "KeyManager": "CUSTOMER",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "MultiRegion": false
    }
}
profile picture
エキスパート
回答済み 6ヶ月前
  • ありがとうございます。バケットポリシーでも同じだったのですね。結構長い時間ハマっていたので助かりました!

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ