Amazon Lightsail의 개체 저장소에 사용자 이미지 저장

하고 싶은 일


나는 Rails에서 프랑스어의 웹 응용 프로그램을 개인적으로 개발했다.
개발자가 S3에 그림을 저장했지만 정식 디버깅을 할 때 Lightsail이 앱을 사용하기로 결정했기 때문에 Lightsail의 대상 저장 장치를 사용하기로 결정했습니다.
12개월 무료.잘 됐다!

원래 S3 설치는 어떻게 된 건지, 기억에서 사라져서 여기를 읽고 복습하는 것부터 시작했어요.
관련된 부분은 다음과 같다.
Gemfile
gem 'image_processing', '~> 1.2'
user.rb
  has_one_attached :image
users_controller.rb
  def users_params
    params.require(:user).permit(:account_name, :image)
  end
config/storage.yml
amazon:
  service: S3
  access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
  secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
  region: ap-northeast-1
  bucket: MY_BUCKET_NAME
S3 클라이언트나 PutObject 같은 걸 어디서 만들었는지 알았는데 안 했어요...이번에는 config/store가 중요합니다.단지 Yml, AdministratorAccess의 IAM 사용자의 액세스 키가 그녀에게 건네졌다.
Lightsail의 대상 저장소도 실제 상황은 S3입니다. 그런데 어떻게 할까요...

실장!


결론


굽은 길을 많이 돌았지만 결론은 물통의 액세스 버튼인 것 같다.ホーム=>ストレージ=>해당バケット선택=>アクセス権限=>アクセスキー=>Aws::S3::Errors::SignatureDoesNotMatch at /
The request signature we calculated does not match the signature you provided. Check your key and signing method.

이 곳에서 접근 키를 만들고 접근 키 ID와 비밀 접근 키를 가져옵니다. 지금까지 환경 변수,credentials, IAM의access였습니다.key_id 및 시크릿access_키를 설정한 곳을 바꿉니다.
그게 다야.
문서가 대충 이거예요.조작이 간단해서 이것을 보지 않아도 된다.
https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/amazon-lightsail-creating-bucket-access-keys
이상은 끝났고 아래에 비어 있는 부분도 적어서 참고만 하겠습니다.

빈 로드 1: 계정 API 액세스 키


애초에 이렇게 욕을 먹었다.admin그러고 보니 Lightsail을 만지작거리기 시작했을 때부터 Lightsail은 다른 AWS 서비스 화면과 달라졌다. IAM은 어떻게 될까?그런 의문이죠?Lightsail 콘솔을 가지고 놀아보면.
오른쪽 상단에 계좌라는 메뉴가 있습니다.

자체 AWS에서 제작한 IAM 사용자가 됩니다.(이 곳은 IAM 사용자 AdministratorAccess 사용)

오, API 액세스 키.

나는 이 문서에 답이 있을 것이라고 생각한다.
https://lightsail.aws.amazon.com/ls/docs/en_us/articles/lightsail-how-to-set-up-access-keys-to-use-sdk-api-cli
Choose the name of the user for which you want to create an access key. The user you choose should have full access or specific access to Lightsail actions.
IAM 사용자는 모든 접근이나 Lightsail의 actions에 대한 접근 권한이 없으면 안 된다고 쓰여 있지만, 이 Lightsail이 사용하는 IAM 사용자는 Provides full access to AWS services and resources. 이기 때문에 이미 'full access' 가 있습니다.네.
새 IAM 사용자를 만들고 라이센스 Lightsail 정책을 명시적으로 첨부하여 액세스 키를 설정하십시오.
(기존 정책에 Lightsailポリシーの作成 버튼이 없습니다.)

(제작된 IAM의api access 키, secret access 키를 credentials에 설정합니다.)

이렇게 Rails 서버를 다시 시작해서 동작을 확인하려고 하면 다음과 같은 오류가 발생합니다.Aws::S3::Errors::AccessDenied Access Denied이번에는 물통에 거절당한 것 같아요.

공전 2: 구간 접근 권한


기본값すべてのオブジェクトはプライベートです=>すべてのオブジェクトはパブリックで読み取り専用です으로 변경해 보십시오.
안돼.
참고로 첫 번째 순조로운 예에서 여기를 돌려すべてのオブジェクトはプライベートです도 열심히 일했다.

최후


뭔가 말이 안 된다면 알려주세요.😅

좋은 웹페이지 즐겨찾기